imcropで画像を切り抜くと空行列になる
4 views (last 30 days)
Show older comments
画像の中央部を切り抜き、保存したいです。
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 Comments
Answers (1)
Hernia Baby
on 25 Apr 2022
Edited: Hernia Baby
on 25 Apr 2022
恐らくですが以下の引数を誤っています。
imgCrop=imcrop(I,[ar br ar-1 br-1]);
(x,y)は(b,a)に対応しています
imcrop(I,[br ar br-1 ar-1]);
こちら ご参考ください
2 Comments
Hernia Baby
on 2 May 2022
Edited: Hernia Baby
on 3 May 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})
See Also
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!