基于对比度的视觉显著性映射具体理论可以参考文献"Zhao J, Feng H, Xu Z, et al. Detail enhanced multi-source fusion using visual weight map extraction based on multi scale edge preserving decomposition[J]. Optics Communications, 2013, 287: 45-52.",在博文基于L0边缘保持滤波的图像融合 matlab代码中给出了原始的较慢的显著性映射matlab程序,原始显著性程序为
function out = Visual_Saliency_Map(I)
I=uint8(255*I);
out=zeros(size(I));
for j=0:255,
for i=0:255,
out(I==j)=out(I==j)+length(find(I==i))*abs(j-i);
end
end
out=mat2gray(out);
end
加速后的程序为
function out = Visual_Saliency_Map(I)
img=uint8(255*I);
[count, x] = imhist(img);
Sal_Tab = zeros(256,1);
for j=0:255,
for i=0:255,
Sal_Tab(j+1) = Sal_Tab(j+1)+count(i+1)*abs(j-i);
end
end
out=zeros(size(img));
for i=0:255,
out(img==i)=Sal_Tab(i+1);
end
out=mat2gray(out);
end
原来程序运行一次需要几分钟,加速后能达到1,2秒。