How to crop required ROI from an image?

% code
h = impoly(gca,[188,30; 189,142; 93,141; 13,41]);
api = iptgetapi(h);
fcn = makeConstrainToRectFcn('impoly',get(gca,'XLim'),get(gca,'YLim'));
api.setPositionConstraintFcn(fcn);
position = wait(h);
a=imcrop(I,[250 91;251 203;155 202;75 102]]);
imshow(I);
end
I am working on medical image processing.
I need to crop eye only from face & position is not constant for all images.
so i use polygonal ROI.
but it shows error.

2 Kommentare

Image Analyst
Image Analyst am 23 Sep. 2018
Read this link so you know how to format your code.
Revathi S
Revathi S am 23 Sep. 2018
Ok. thanks Modified

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Image Analyst
Image Analyst am 23 Sep. 2018

1 Stimme

Call imcrop() with no arguments if the coordinates are not the same from image to image. This will let the user interactively select the box.

2 Kommentare

Revathi S
Revathi S am 23 Sep. 2018
Imcrop() deals with rectangular boundary.
My ROI is not a rectangular shape (ie, Eye )
It contain some unwanted portion while cropping.
Image Analyst
Image Analyst am 29 Sep. 2018
Try this freehand masking demo.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Revathi S
Revathi S am 29 Sep. 2018

1 Stimme

if true
e = roipoly(I);
ROI=zeros(size(I,1),size(I,2));
NONROI=zeros(size(I,1),size(I,2));
int16(i);
int16(j);
for i=1:size(I,1)
for j=1:size(I,2)
if e(i,j)==1
ROI(i,j)=I(i,j);
ROI(i,j)=1;
end
end
end
Code for Croping Required ROI

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by