我是Matlab的新手。我尝试使用前面的例子对这个问题进行子图像的多个图像并且它可以工作。但是,它显示了5x5阵列的5x5阵列。如果图像的数量(目前正在研究的情况)是奇数怎么办?如何基于奇数个数组绘制图像?这是我的代码。请帮帮我。非常感谢任何帮助
1. figure;
2. for n=1:30
3. filename= fullfile(input_dir,filenames(n).name);
4. img = imread(filename);
5. img1 = imcrop(img,[79 90 95 127]);
6. img2=histeq(img1);
7.
8. I = img2;
9. A = imnoise(I,'salt & pepper',0.01);
10. A=double(A);
11. [ imf_matrix ] = bemd( A );
12. imf1 = imf_matrix(:,:,1);
13.a = mat2gray(imf1);
14.subplot('Position',[(mod(n-1,5))/5 1-(ceil(n/5))/5 1/5 1/5]),imshow(a);
15.
16.
17.
18. anger(:,n) = imf1(:);
19.
20.
21.
22.end
23.p = get(gcf,'Position');
24.k = [size(a,2) size(a,1)]/(size(a,2)+size(a,1));
25.set(gcf,'Position',[p(1) p(2) (p(3)+p(4)).*k])
26.
27.an=anger';
答案 0 :(得分:1)
您的bottom
的{{1}}部分出现了问题:
'Position'
但是,您也可以这样做:
for ii = 1:30
im = im2double(imread('cameraman.tif'));
im = imresize(im,[40 30]);
a = imrotate(im,randi(360),'bilinear','crop');
left = (mod(ii-1,5))/5;
bottom = (floor((ii-1)/5))/6;
% or: bottom = 5/6 - (floor((ii-1)/5))/6;
subplot('Position',[left, bottom, 1/5, 1/6]);
end