删除奇数/偶数向量中matlab子图中的间距

时间:2017-04-12 09:39:20

标签: matlab image-processing

我是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';

以下是我的结果salt and pepper at 10% noise density

1 个答案:

答案 0 :(得分:1)

您的bottom的{​​{1}}部分出现了问题:

'Position'

enter image description here

但是,您也可以这样做:

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