0
我试图做一个单元格数组中存储的20个PNG图像的逐像素比较。对于每个像素位置(i,j),我想从20个图像中找出具有最大值和最小值的像素。在matlab中比较多个图像
我目前的实现似乎工作,但因为它只是一堆嵌套for循环,它需要几分钟才能完成执行。我正在寻找更有效的方法,有没有人有建议?我目前的代码如下。
min = 256;
max = -1;
for j = 1: xMax
for k = 1: yMax
for p = 1: 20
if imageArray{p}(j,k) > max
max = imageArray{p}(j,k);
end
if imageArray{p}(j,k) < min
min = imageArray{p}(j,k);
end
end
minImg(j,k) = min;
maxImg(j,k) = max;
min = 256;
max = -1;
end
end
所以minImg/maxImg是NROWS * NCOLS矩阵所有nrows * ncols像素位置的像素值? I.e minImg(1,1)是我们比较的20(1,1)像素中最小的那个?对不起,我是matlab新手,无法弄清楚最后两行的内容。 – Adam 2015-04-04 03:32:58
@Adam准确地说,这就是你在这些矢量化操作中必须要得到的结果。 'maxImg'也一样,即maxImg'中的每个元素将是所有20幅图像中每个像素的最大值。 – Divakar 2015-04-04 03:34:25