Cropping an image using imfreehand()

조회 수: 1 (최근 30일)
shivasmic
shivasmic 2019년 12월 6일
댓글: shivasmic 2019년 12월 10일
I want to crop the ROI from an image using imfreehand() but I am not able to. How can I crop an using imfreehand(). Would cropping the ROI also affect the qualtiy of the ROI as a whole. If it would affect the ROI then what is the solution?
imshow('cameraman.png');
h = imfreehand();
position = wait(h);
What am I supposed to do after this to get the ROI without losing the quality? Thanks in advance.

채택된 답변

Image Analyst
Image Analyst 2019년 12월 6일
Try this:
grayImage = imread('cameraman.tif');
imshow(grayImage);
subplot(1, 2, 1);
imshow(grayImage);
fontSize = 20;
title('Double click inside to accept it.', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);
promptMessage = sprintf('Click and drag out a region.\nDouble click inside to quit.\nor Quit processing?');
titleBarCaption = 'Continue?';
buttonText = questdlg(promptMessage, titleBarCaption, 'Draw', 'Quit', 'Draw');
if contains(buttonText, 'Quit')
return;
end
h = imfreehand();
position = wait(h)
% Make integers
position = round(position);
% Find cropping limits.
col1 = min(position(:, 1))
col2 = max(position(:, 1))
row1 = min(position(:, 2))
row2 = max(position(:, 2))
% Do the crop
croppedImage = grayImage(row1:row2, col1:col2);
% Show the cropped image.
subplot(1, 2, 2);
imshow(croppedImage);
title('Cropped Image', 'FontSize', fontSize);
0000 Screenshot.png
  댓글 수: 3
Image Analyst
Image Analyst 2019년 12월 7일
The image is NOT deteriorated after cropping. You still have the original pixels. It only looks pixelated because it's magnified for display.
It is usually not necessary for you to extract/crop the subimage to do image analysis on it. I usually don't unless I need to do something like doing OCR and need to get one character or one band of text in an image.
shivasmic
shivasmic 2019년 12월 10일
Thank you image analyst for the assistance. Can you please let me know is there any way that I can fix the size of the window to 256X256 so that everytime I crop out an image of size of 256X256 using imfreehand(). Thanks in advance.

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

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by