Cropping out two images from one big image by manually selecting the cropping are

1 回表示 (過去 30 日間)
How can I crop two images out from one big image by manually selecting the region for cropping out with a rectangle for example? Additionally, how can I extract the rows and columns that I selected with the rectangle?

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 10 月 25 日
Try this code
img = imread('pears.png');
figure();
ax1 = axes();
imshow(img, 'Parent', ax1)
fprintf('Drag a rectange on the image.\n')
roi = drawrectangle(ax1);
img_small = imcrop(img, roi.Position);
figure();
ax2 = axes();
imshow(img_small, 'Parent', ax2)
  4 件のコメント
windmill
windmill 2020 年 10 月 28 日
編集済み: windmill 2020 年 10 月 28 日
Thanks, I got it! I just tried to modfify the code so I can use my images that I converted to grayscale images, but I don't know why it won't work anymore... Do you see the problem?
image = imread('Test016.tif');
max(max(image))
image2 = mat2gray(image)*255
figure();
ax1 = axes();
imshow(image2, 'Parent', ax1)
fprintf('Draw the ROI on the image using the rectangle.\n')
roi = drawrectangle(ax1);
roiPos=roi.Position;
cropped_image = imcrop(image2, roi.Position);
figure();
ax2 = axes();
imshow(cropped_image, 'Parent', ax2)
Ameer Hamza
Ameer Hamza 2020 年 10 月 29 日
Try this code
image = imread('pears.png');
image2 = rgb2gray(image);
figure();
ax1 = axes();
imshow(image2, 'Parent', ax1)
fprintf('Draw the ROI on the image using the rectangle.\n')
roi = drawrectangle(ax1);
roiPos=roi.Position;
cropped_image = imcrop(image2, roi.Position);
figure();
ax2 = axes();
imshow(cropped_image, 'Parent', ax2)

サインインしてコメントする。

その他の回答 (1 件)

Image Analyst
Image Analyst 2020 年 10 月 25 日
Did you check out the documentation for imcrop(), or rbbox()?
  1 件のコメント
windmill
windmill 2020 年 10 月 25 日
Thank you, haven't heard about rbbox() before, but will make sure to check it out

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by