필터 지우기
필터 지우기

Roipoly for 3D images

조회 수: 10 (최근 30일)
Jacob
Jacob 2011년 12월 1일
Hello,
I am trying to use the roipoly tool to segment out a region from a stack of medical images. In many cases the ROI is fairly constant between different slices of the total volume. Is there a way to select the ROI in the first slice, copy those points to the adjacent slice, and then edit those points?
Right now I'm trying the following:
[slice_1_roi tmp_xi tmp_yi]=roipoly(slice1);
[slice_2_roi tmp_xi tmp_yi]=roipoly(slice2,tmp_xi,tmp_yi);
[slice_3_roi tmp_xi tmp_yi]=roipoly(slice3,tmp_xi,tmp_yi);...
However, this just copies the ROI from the first slice without allowing any interaction in the next two slices. Help?
  댓글 수: 1
Sean de Wolski
Sean de Wolski 2011년 12월 1일
Good Question.

댓글을 달려면 로그인하십시오.

채택된 답변

Amith Kamath
Amith Kamath 2011년 12월 2일
This is interesting too. I had to work on a similar problem of 3D segmentation, where the correlation between slices was significant, although my contours were not manually set for each slice. But you could use the function called impoly. For example,
load mri
[slice_1_roi tmp_xi tmp_yi]=roipoly(D(:,:,:,1));
imshow(D(:,:,:,2)); %To get the figure handle.
h = impoly(gca,[tmp_xi tmp_yi]); %Alter your mask here. DONT close the figure window yet.
BW = createMask(h); %BW contains the mask which you just altered.
pos = getPosition(h); %Stores the points in your new mask.
%Close the figure now, and repeat this for the next slice.
imshow(D(:,:,3));
h = impoly(gca,pos); %Now pos contains the points from your mask.
Let me know if this works!
  댓글 수: 2
Jacob
Jacob 2011년 12월 2일
Great solution, thank you!
Jawahir
Jawahir 2013년 3월 21일
Is this possible in 3D medical image in .obj format? i've already read the file and displayed it in the figure window in mesh form.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by