imcropで画像を切り抜くと空行列になる
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
画像の中央部を切り抜き、保存したいです。
imcropでプロセスしたイメージが真っ白な画像になってしまいます。ワークスペースでみてもimgCropが空行列になっているようです。
シンプルなミスだと思います、恐縮ですがどなたか教えていただけないでしょうか。
for i=1:size(im_name,1)
I=imread(im_name{i});
imshow(I);
[a, b]=size(I);
ar=round(a/3);
br=round(b/3);
imgCrop=imcrop(I,[ar br ar-1 br-1]);
%width, height each subtracted by 1 to obtain a/3×b/3
imshow(imgCrop);
save_loc='こちらでは省略';
fileName = [save_loc, '\img',int2str(i), '_', 'middle', '.jpg'];
imwrite(imgCrop,fileName);
end
参考
0 comentarios
Respuestas (1)
Hernia Baby
el 25 de Abr. de 2022
Editada: Hernia Baby
el 25 de Abr. de 2022
恐らくですが以下の引数を誤っています。
imgCrop=imcrop(I,[ar br ar-1 br-1]);
(x,y)は(b,a)に対応しています
imcrop(I,[br ar br-1 ar-1]);
こちら ご参考ください
2 comentarios
Hernia Baby
el 2 de Mayo de 2022
Editada: Hernia Baby
el 3 de Mayo de 2022
以下のようになります
clc,clear;
I = imread('chacha_sq.jpeg');
imshow(I)
まず行と列を3等分します
[row, line] = size(I(:,:,1))
n = 3;
idx = floor([row line]./n);
各セルに格納していきます
for ii = 1:n
for jj = 1:n
A{ii,jj,:} = I(idx(1).*(ii-1)+1:idx(1).*ii, ...
idx(2).*(jj-1)+1:idx(2)*jj,:);
end
end
最後に真ん中の切り抜きを見てみましょう
imshow(A{2,2})
Ver también
Categorías
Más información sobre Image Processing Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!