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

4 ビュー (過去 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 ExchangeImage Processing Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by