基于对比度的视觉显著性映射(visual saliency map)快速matlab代码

基于对比度的视觉显著性映射具体理论可以参考文献"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秒。

你可能感兴趣的:(图像处理)