我正在尝试将图像转换为一组数组,这些数组可以用于商业目的的数字处理和分析。已经创建了一个代码并且它可以工作,但是有什么方法可以减少执行代码所需的时间?
这是一种新技术的商业化的最后阶段,需要考虑对该技术所拍摄图像的实时分析。
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秒,这是预期的,但是对于所需时间来说太长了,并且包含了太多的中间内容,使得代码有点多余。我正在寻找一种减少裁员的方式,从而减少处理时间。
答案 0 :(得分:0)
您的代码与以下代码相同:
Image = imread('flirpolarcamtest3.png');
Image0 = uint16(Image(1:2:end-1,1:2:end-1));
我不知道您的循环为何转到n-1
和m-1
,而不是转到n
和m
。对于偶数大小的图像,它们是相同的,但是对于奇数大小的图像,您将使用代码错过一行和一列。