有没有一种方法可以减少像素分隔符代码的处理时间?

时间:2019-01-28 23:11:12

标签: matlab

我正在尝试将图像转换为一组数组,这些数组可以用于商业目的的数字处理和分析。已经创建了一个代码并且它可以工作,但是有什么方法可以减少执行代码所需的时间?

这是一种新技术的商业化的最后阶段,需要考虑对该技术所拍摄图像的实时分析。

function pixelseperator()

clear all

close all
Image=imread('flirpolarcamtest3.png');


Image=uint16(Image);
[m,n]=size(Image);
Imagex=zeros(m/2,n/2);
Imagexrows=zeros((m/2),1);
col=1;
for ni=1:2:n-1
    row=1;
    for mi=1:2:m-1
      Imagexrows(row)=Image(mi,ni);
      row=row+1;   
    end
col=col+1;    
Imagex(:,col)=Imagexrows;
end
Image0=Imagex;

启动代码所需的平均时间约为0.74秒,这是预期的,但是对于所需时间来说太长了,并且包含了太多的中间内容,使得代码有点多余。我正在寻找一种减少裁员的方式,从而减少处理时间。

1 个答案:

答案 0 :(得分:0)

您的代码与以下代码相同:

Image = imread('flirpolarcamtest3.png');
Image0 = uint16(Image(1:2:end-1,1:2:end-1));

我不知道您的循环为何转到n-1m-1,而不是转到nm。对于偶数大小的图像,它们是相同的,但是对于奇数大小的图像,您将使用代码错过一行和一列。