您的位置:首页 > 编程语言 > MATLAB

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

2016-08-27 16:29 330 查看
基于对比度的视觉显著性映射具体理论可以参考文献"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秒。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息