필터 지우기
필터 지우기

How to crop image using imfreehand and save the output without connecting the boundaries

조회 수: 1 (최근 30일)
I have an input Image, I want to crop the image using imfreehand with closed boundary option. Unfortunately when I create mask and save the output:
h = imfreehand('Closed',false);
output_mask = h.createMask();
the end points of the cropped region becomes a closed polygon.
This is input file
This is the required output.
I am getting this output
Thanks in advance

답변 (2개)

Matt J
Matt J 2019년 12월 19일
편집: Matt J 2019년 12월 19일
I think you simply neglected to trace the full boundary of the shape. Though I traced very quickly and unneatly, the result I get below shows what you should be getting when you trace the full boundary.
  댓글 수: 6
Praveen GB
Praveen GB 2019년 12월 20일
편집: Image Analyst 2019년 12월 20일
Hi Matt, Thanks for the reply. I have so many such structures in a image, I want to manually crop these structures and find the edges as shown in the depicted output.
Thanks
Image Analyst
Image Analyst 2019년 12월 20일
Your depicted desired output does not show the edges - it shows the entire, filled blob.

댓글을 달려면 로그인하십시오.


Image Analyst
Image Analyst 2019년 12월 19일
If you want that output, why not simply binarize the image:
grayImage = imread('image.png');
if ndims(grayImage) == 3
grayImage = rgb2gray(grayImage); % Convert RGB image into gray scale.
end
subplot(1, 2, 1);
imshow(grayImage);
binaryImage = ~imbinarize(grayImage);
subplot(1, 2, 2);
imshow(binaryImage);
0000 Screenshot.png
It looks like the above image is what you said you want, so why do freehand masking?
  댓글 수: 4
Praveen GB
Praveen GB 2019년 12월 20일
This is my input input.png and I want to crop the input and get output like output.png.
Since so many structures are present in input image, I have to crop it using free hand.
Thanks
Image Analyst
Image Analyst 2019년 12월 20일
OK, no explanation for why you need edges - I guess it's proprietary or something.
However my masking demo will allow you to mask freehand-drawn regions with optional cropping into a subimage if you want. Does it not do what you want? You can still detect edges if you feel that is definitely the best approach.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by