รับตำแหน่งพิกเซลของจุดใน Matlab สำหรับข้อมูล MRI

ฉันสามารถแสดงข้อมูลจาก MRI ในรูปได้ ฉันใช้แหล่งที่มา:

load mri
figure('Colormap',map)
load DCE_sec05_inp.mat
image(data2{1,1}) %i get 128*96 pixel picture
axis image

แต่ฉันหาวิธีแก้ไขไม่ได้ว่าจะนำตำแหน่งพิกเซลไปยังพื้นที่ทำงานได้อย่างไรเมื่อฉันคลิกไปที่พิกเซลในรูป ฉันพบรหัสนี้:

I = imread('cameraman.tif');  %read the image in I
imshow(I);                    %display I
[c,r,P] = impixel(I)

แต่ฉันไม่สามารถรับข้อมูล mri เข้าสู่โหมด imshow ได้ ขอบคุณสำหรับความช่วยเหลืออะไรก็ตาม


person user3077942    schedule 03.01.2014    source แหล่งที่มา
comment
จะเกิดอะไรขึ้นเมื่อคุณใช้ imshow? คุณได้รับข้อความแสดงข้อผิดพลาดหรือไม่? หรือมันไม่แสดงอะไรเลย? นอกจากนี้ คุณอาจต้องการใช้ imread แทน load หากทำได้   -  person Cape Code    schedule 04.01.2014


คำตอบ (2)


คุณไม่จำเป็นต้อง imshow ลองสิ่งนี้:

image(data2{1,1}) %i get 128*96 pixel picture
axis image
[u v]=getpts;

พิกัดของจุดที่คุณคลิกจะถูกเก็บไว้ใน u และ v

person Cape Code    schedule 03.01.2014

รูปภาพหรือข้อมูลที่คุณกำลังอ่านอยู่ในประเภท map (mri) ซึ่งไม่จำเป็นต้องอยู่ในรูปแบบ RGB (cameraman) ในการแสดงภาพโดยใช้ imshow คุณจะต้องใช้ข้อมูลแผนที่เป็นอาร์กิวเมนต์ที่สอง ตัวอย่างเช่น รูปภาพแรกในข้อมูล mri สามารถแสดงได้โดยใช้ไวยากรณ์ต่อไปนี้:

load mri
imshow(D(:,:,:,1), map)  %map is provided the mri.dat

เมื่อคุณใช้ imshow คุณสามารถใช้ impixel เหมือนตัวอย่างที่คุณให้ไว้

person Lokesh A. R.    schedule 04.01.2014