How can I crop the image at a particular location each time?

2 ビュー (過去 30 日間)
Suyog Pathare
Suyog Pathare 2022 年 2 月 8 日
回答済み: yanqi liu 2022 年 2 月 9 日
I have multiple rbg images. I want to analyze them for pixel calculation. But I only want a part of it. How can I crop all the images at the exact same location?

採用された回答

yanqi liu
yanqi liu 2022 年 2 月 9 日
yes,sir,just use imcrop can get target area image,if multi image do not have same size,may be use width and height rate,such as
clc; clear all; close all;
files = {'cameraman.tif', 'football.jpg', 'rice.png'};
rect = [0.2 0.3 0.4 0.3];
for i = 1 : length(files)
% get image
imi = imread(files{i});
sz = size(imi);
% get rect
recti = rect .* [sz(2) sz(1) sz(2) sz(1)];
% crop image
imi2 = imcrop(imi, round(recti));
figure;
subplot(1,2,1); imshow(imi, []);
hold on; rectangle('position', recti, 'EdgeColor', 'r', 'LineWidth', 2)
subplot(1,2,2); imshow(imi2, []);
end

その他の回答 (2 件)

Highphi
Highphi 2022 年 2 月 8 日
Your rgb images are an X x Y x 3 array,
where, visually, X is actually image height and Y is actually image width
If you imaging that the top left corner of your image is 0,0
you can get another smaller cropped area via:
rgb2 = rgb1(X1:X2, Y1:Y2, :);

David Hill
David Hill 2022 年 2 月 8 日
編集済み: David Hill 2022 年 2 月 8 日
Your rbg image is just a matrix. Just index into the matrix at the location you want.
x=uint8(randi(255,1000,1000,3));
imshow(x(10:10,50:80,:));

カテゴリ

Help Center および File ExchangeGet Started with Image Processing Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by