Crop with imfreehand?
13 views (last 30 days)
Show older comments
DIMITRIOS THEODOROPOULOS
on 2 Feb 2019
Commented: sinjini ghosh
on 12 Nov 2019
I dont know if my question has an answer.I have an image and crop a ROI with imcrop
[cropped_image,rect]=imcrop(original_image);
I work with cicular regions so this rectangular is not working very well.I want to draw freehand the ROI i want..
I tried this but doesnt work.(I want to get similar image such as cropped_image)
cropped_image=imfreehand();
and then extract this cropped_image and continue to my analysis
0 Comments
Accepted Answer
Satoshi Kobayashi
on 3 Feb 2019
Edited: Satoshi Kobayashi
on 3 Feb 2019
I = imread('corn.tif',2);
imshow(I)
h = imfreehand; % Place a closed ROI by dragging and double-click on the region.
position = round(wait(h));
min_values = min(position,[],1);
max_values = max(position,[],1);
Inew = I(min_values(2):max_values(2),min_values(1):max_values(1),:);
[X1,X2] = meshgrid(1:size(Inew,2),1:size(Inew,1));
in = inpolygon(X1,X2,position(:,1)-min_values(1)+1,position(:,2)-min_values(2)+1);
in =repmat(in,1,1,size(I,3));
Inew(~in) = 0; % If I is uint
Now Inew is the rectangular cropped image. Out of ROI has been blacked out.
4 Comments
sinjini ghosh
on 12 Nov 2019
Could you comment on what each of the command is doing, the code works, but I didnot understand the operations you used
More Answers (1)
Image Analyst
on 3 Feb 2019
See my attached demo. I think you'll like it a lot better than the other answer. It gives you drawing instructions, it doesn't ask you to "confirm" the shape after you draw it, it does a variety of masking options, and it does the cropping you want. Adapt as needed.
4 Comments
See Also
Categories
Find more on Read, Write, and Modify Image in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!