简介
从信息论的角度来看,有效编码假说将图像信息H(Image) 分为两部分:
H(Image)=H(Innovation)+H(Prior Knowledge)
H(Innovation)表示突出的部分,H(Prior Knowledge)则表示冗余的信息。
显著性检测的SR方法即谱残差法,是通过去除图像冗余信息来获得图像与众不 同的部分,即显著目标。计算公式如下:
算法步骤为:
- 对图像进行傅立叶变换
- 将局部平滑后的对数幅度谱作为冗余部分
- 原对数幅度谱减去平滑后的对数幅度谱
- 将剩余的部分看作是显著部分在频域的信息。
代码
代码文件已上传至GitHub:SR代码文件
SR的步骤比较简单,代码如下
%读取图像
Image = imread('/Users/yunyi/Desktop/testimg/object_detectEX/EX4/images/0015.jpg');
figure,
subplot 211,imshow(Image);
title('原图');
Img = im2double(rgb2gray(Image));
%傅立叶变换
FFT = fft2(Img);
%对数幅度谱
LogAmplitude = log(abs(FFT));
%相位
Phase = angle(FFT);
%原幅度谱减去局部平滑后的幅度谱
SpectralResidual = LogAmplitude - imfilter(LogAmplitude, fspecial('average', 3), 'replicate');
%融合幅度与相位
saliencyMap = abs(ifft2(exp(SpectralResidual+1i*Phase))).^2;
saliencyMap = mat2gray(imfilter(saliencyMap, fspecial('gaussian', [8, 8], 8)));
subplot 212,imshow(saliencyMap,[]);
title('SR结果');
imwrite(saliencyMap,'/Users/yunyi/Desktop/testimg/object_detectEX/EX4/SRresult/0016.jpg')