How can I make an auto cropping command

9 次查看(过去 30 天)
Please, see the two images I attach.
They are actually the same images, but the one is cropped at the middle of the imaging window. I defined a cropping window and just cropped it.
How can I have the same procedure in an automated way?
So Matlab needs to identify the imaging window and assume we put some values to automatically create a cropping window of e.g. 50% of the standoff's thickness. and another 50% of soft tissue. This can also be adjusted by the user and be able to chose his own values.
Looking forward to your valuable help.
God bless you.

采纳的回答

Image Analyst
Image Analyst 2019-1-29
I thought I already gave you code for this. Basically you threshold it, then call bwareafilt() to extract the largest blob. Then call regionprops() to get the bounding box. Then reassign the last element of the bounding box to be whatever height you want, then call imcrop(). Try it. Here's a start
binaryImage = bwareafilt(grayImage > 0, 1);
props = regionprops(binaryImage, 'BoundingBox');
bb = props.BoundingBox;
bb(end) = 100; % Whatever height you want.
croppedImage = imcrop(grayImage, bb);
imshow(croppedImage);
  8 个评论
Stelios Fanourakis
Stelios Fanourakis 2019-1-30
Now that I am thinking about is that this method starts counting from top of the imaging window. If you notice on the image, at the top boundary you'll see some artifacts that I need to avoid, otherwise, they will cause me trouble on the segmentation process with the active contour.
In this case, I need the cropping window to start a bit lower NOT to include the artifacts, but later on, I need to know how many pixel rows and columns I missed, as a magnitude and add them later on, since, I care about the total imaging window dimensions and I wouldn't like to miss any rows and columns.
Am I clear?
Stelios Fanourakis
Stelios Fanourakis 2019-1-30
How do I tell Matlab that I want the 50% or 70% of the cropping window as it is, starting from the bottom of the image NOT from the top. So, the remaining 50% or 30% will be deducted from the top of the cropping window.
And, then, I need to know how many pixel rows were deducted so to add them later on, as pixels or mm.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by