How to crop required ROI from an image?

23 views (last 30 days)
% 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.

Accepted Answer

Image Analyst
Image Analyst on 23 Sep 2018
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 Comments
Revathi S
Revathi S on 23 Sep 2018
Imcrop() deals with rectangular boundary.
My ROI is not a rectangular shape (ie, Eye )
It contain some unwanted portion while cropping.

Sign in to comment.

More Answers (1)

Revathi S
Revathi S on 29 Sep 2018
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!