Medical Image Processing: X and Y coordinates switched around after using find and ind2sub?

I am trying to extract the non-zero points from a mask made from a medical image. These points will be used for an orthogonal projection onto a plane.
I will describe my problem below.
The mask consists of a matrix of zeros (undesired pixels) and ones (desired pixels). The mask can be visualised with for example sliceViewer or orthosliceViewer. I show you orthosliceViewer in Figure 1. The attached .mat file contains one of these masks.
You can observe that the middle of the mask is more or less
X = 239
Y = 207
Z = 85
In the next step I want to extract the coordinates of all the non-zero points (white on Figure 1). I use the following code:
index = find(mask);
[ori_x, ori_y, ori_z] = ind2sub([size(mask,1),size(mask,2),size(mask,3)], index);
This code makes sense to me. Next, I check the range of values in ori_x, ori_y, ori_z with the unique function.
This function show me that :
  • X values vary between 199 and 215
  • Y values vary between 233 and 248
  • Z values vary between 77 and 93
When we compare these values to the "middle point of the mask" above. It seems that the Z value is fine, but the X and Y value seems to be switched.
I confirmed this suspision by extracting the centroid and bounding box of the mask using bwlabeln and regionprops3.
I know the quick fix would be to switch the X and Y value back, but I want to know what fundamental mistake I'm making. Can somebody help me?
Thanks in advance for your advice!
Sam

댓글 수: 2

Thank you for your answer.
This helps me out a lot.
Maybe you should post it as an answer?

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

 채택된 답변

Roger J
Roger J 2020년 7월 30일
Sam,
This is a common misunderstanding.
Please see if this link answers your question:
If this is helpful, please mark as the answer.

추가 답변 (1개)

ind2sub gives [row, column, slice], which is [y, x, z].
It does not give [ori_x, ori_y, ori_z] = ind2sub(...) like you had. Try
[ori_y, ori_x, ori_z] = ind2sub(....

카테고리

도움말 센터File Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

제품

릴리스

R2019b

질문:

2020년 7월 29일

답변:

2020년 7월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by