How to crop required ROI from an image?

23 visualizzazioni (ultimi 30 giorni)
% 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 Commenti
Image Analyst
Image Analyst il 23 Set 2018
Read this link so you know how to format your code.
Revathi S
Revathi S il 23 Set 2018
Ok. thanks Modified

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 23 Set 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 Commenti
Revathi S
Revathi S il 23 Set 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 il 29 Set 2018
Try this freehand masking demo.

Accedi per commentare.

Più risposte (1)

Revathi S
Revathi S il 29 Set 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

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by