显著性检测方法SR(谱残余方法)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_22238021/article/details/72875923

该方法是基于频域的。详细见原文点击打开链接

首先将图像进行傅里叶变换,变换到频率域,计算幅度谱和相位谱。


然后将幅度谱变为对数谱(对幅度谱取对数),再对对数谱进行线性空间滤波(3*3的均值滤波),对两者做差,得到剩余谱


利用剩余谱和相位谱进行反向傅里叶变换,得到显著图。进行线性空间滤波(8*8的均值为8的高斯滤波器)


再进行归一化,得到最终的显著图。

【MATLAB实现】

Image = imread(‘a.jpg’);

inImg = im2double(rgb2gray(Image));

myFFT = fft2(inImg);

myLogAmplitude = log(abs(myFFT));

myPhase = angle(myFFT);

mySpectralResidual = myLogAmplitude - imfilter(myLogAmplitude, fspecial('average', 3), 'replicate');
saliencyMap = abs(ifft2(exp(mySpectralResidual+i*myPhase))).^2;
saliencyMap = mat2gray(imfilter(saliencyMap, fspecial('gaussian', [8, 8], 8)));

展开阅读全文

没有更多推荐了,返回首页