Cropping an image using imfreehand()

1 visualización (últimos 30 días)
shivasmic
shivasmic el 6 de Dic. de 2019
Comentada: shivasmic el 10 de Dic. de 2019
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.

Respuesta aceptada

Image Analyst
Image Analyst el 6 de Dic. de 2019
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 comentarios
Image Analyst
Image Analyst el 7 de Dic. de 2019
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 el 10 de Dic. de 2019
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.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by