显著性检测方法FT

xiaoxiao2021-02-27  165

该方法从频率角度分析图像。详细算法见点击打开链接

图像在频率域可以分成低频部分和高频部分。低频部分反映了图像的整体信息,如物体的轮廓,基本的组成区域。高频部分反映了图像的细节信息,如物体的纹理。显著性区域检测用到的更多的是低频部分的信息。在实际进行计算时,FT方法使用窗口5*5的高斯平滑来实现对最高频的舍去。像素的显著性可以用下面公式计算:

其中,Iu为图像的平均特征,使用Lab颜色特征,后一项为像素p在高斯平滑后的Lab颜色特征,||.||为L2范式,即计算前一项和后一项在了Lab颜色空间的欧氏距离。

FT方法实现简单,只需要高斯平滑和平均值计算。

【MATLAB实现过程】

1、对图像进行5*5的高斯平滑。

2、转换颜色空间。RGB颜色空间转换为CIELAB颜色空间。

3、计算整幅图片的l、a、b的平均值。

4、按照算法中的公式,计算每个像素l、a、b值同图像三个l、a、b均值的欧氏距离。得到显著图

5、归一化。图像中每个像素的显著值除以最大的那个显著值。得到最终的显著图。

【代码】

im=imread('1.jpg');

gfrgb = imfilter(im, fspecial('gaussian', 5, 5), 'symmetric', 'conv');

cform = makecform('srgb2lab');

lab = applycform(gfrgb,cform);

l = double(lab(:,:,1)); lm = mean(mean(l));%整幅图片的l均值 a = double(lab(:,:,2)); am = mean(mean(a));

b = double(lab(:,:,3)); bm = mean(mean(b));

 sm = (l-lm).^2 + (a-am).^2 + (b-bm).^2;%像素的显著度 s=max(sm(:)); sa=sm./s;

imshow(sa);

转载请注明原文地址: https://www.6miu.com/read-13478.html

最新回复(0)