我必须创建一个关于图像的对比图。该方法很简单:在 5x5(滑动)窗口中估计对比度(C=SD/Mean)。在整个图片中逐像素移动窗口并将结果保存在新矩阵中。
我创建了这个脚本来解决这个问题,但它太慢了。基本图片是 1024x1024 16 位 .tif 图像。该过程大约 40-50 秒长,但其他程序在不到 3 秒内解决它。我怎样才能加快我的脚本?
我的原始脚本:
M=imread('image.tif');
for S=1:2 SM1_b=size(M,1); SM2_b=size(M,2);
M(:,SM2_b+1)=M(:,SM2_b);
M(SM1_b+1,:)=[M(SM1_b,1:SM2_b) M(SM1_b,SM2_b)];
end
M=[M(1,1:SM2_b+1);M(1,1:SM2_b+1);M]; M=[M(1:(size(M,1)),1) M(1:(size(M,1)),1) M]; clear S SM1_b SM2_b
KPic=zeros(1024);
for i=1:1024 for j=1:1024
KPic(i,j)=std2(M(i:i+4,j:j+4))/mean2(M(i:i+4,j:j+4));
end
end