【图像检测-显著图】基于失真提示实现鱼眼图显著图计算附matlab代码和论文

1 简介

Distortion is often considered as an unfavorable factor in most image analysis. However, it is undeniable that the distortion reflects the intrinsic property of the lens, especially, the extreme wide-angle lens, which has a significant distortion. In this paper, we discuss how explicitly employing the distortion cues can detect the forgery object in distortion image and make the following contributions: 

​1) a radial distortion projection model is adopted to simplify the traditional captured ray-based models, where the straight world line is projected into a great circle on the viewing sphere; 

2) two bottom-up cues based on distortion constraint are provided to discriminate the authentication of the line in the image; 

3) a fake saliency map is used to maximum fake detection density, and based on the fake saliency map, an energy function is provided to achieve the pixel-level forgery object via graph cut. Experimental results on simulated data and real images demonstrate the performances of our method.

2 部分代码

% Demo for "Forgery Authentication in Extreme Wide-angle Lens Using Distortion Cue and Fake Saliency Map" close all; clear; clc;% Read datasavefile = 'ForensicImage/PSTest-5';orgimage = imread(strcat(savefile,'.jpg'));load(strcat(savefile,'.mat'));figure,subplot(131);imshow(orgimage);title('Forgery image');% compute the measure cueK_value=line_number:4;fake_saliency=zeros(size(orgimage,1),size(orgimage,2),'uint8'); Grave_Point_x=0;Grave_Point_y=0;Grave_K=0;for i=1:line_number       % the distance cue    K_value(i,1)=Distance_inv(Points(((1+(i-1)*3):(3+(i-1)*3)),:),fish_x,fish_y,fish_r,1);    % the volume cue    K_value(i,2)=Volume_inv(Points(((1+(i-1)*3):(3+(i-1)*3)),:),fish_x,fish_y,fish_r,1);    % the combine cue    K_value(i,3)=Combine(K_value(i,2),K_value(i,1));    % the untrustworthy likelihood    K_value(i,4)=1-0.9*exp(-(K_value(i,3)*10)^2/((0.2^2)*2));    % compute the center of gravity    if K_value(i,4)>0.5    Grave_Point_x=Grave_Point_x+1*(Points(1+(i-1)*3,1)...        +Points(2+(i-1)*3,1)+Points(3+(i-1)*3,1));    Grave_Point_y=Grave_Point_y+1*(Points(1+(i-1)*3,2)...        +Points(2+(i-1)*3,2)+Points(3+(i-1)*3,2));    Grave_K=Grave_K+1;    end    fake_saliency = Line2image(fake_saliency, K_value(i,4),...        Points(((1+(i-1)*3):(3+(i-1)*3)),:));endI=rgb2gray(orgimage);BW= edge(I,'canny',0.1);subplot(132);imshow(BW); title('Forgery line detection');hold on;for i=1:line_number      if K_value(i,4)>0.5 % line detection with S>0.5        plot(Points((1+(i-1)*3),1),Points((1+(i-1)*3),2),'Color', [1,0,0]);        plot(Points((2+(i-1)*3),1),Points((2+(i-1)*3),2),'Color', [1,0,0]);        plot(Points((3+(i-1)*3),1),Points((3+(i-1)*3),2),'Color', [1,0,0]);        line([Points((1+(i-1)*3),1) Points((2+(i-1)*3),1)], [Points((1+(i-1)*3),2) Points((2+(i-1)*3),2)],...            'Color', [1,0,0], 'LineWidth', 3)        line([Points((2+(i-1)*3),1) Points((3+(i-1)*3),1)], [Points((2+(i-1)*3),2) Points((3+(i-1)*3),2)],...            'Color', [1,0,0], 'LineWidth', 3)    else        plot(Points((1+(i-1)*3),1),Points((1+(i-1)*3),2),'Color', [0,1,0]);        plot(Points((2+(i-1)*3),1),Points((2+(i-1)*3),2),'Color', [0,1,0]);        plot(Points((3+(i-1)*3),1),Points((3+(i-1)*3),2),'Color', [0,1,0]);        line([Points((1+(i-1)*3),1) Points((2+(i-1)*3),1)], [Points((1+(i-1)*3),2) Points((2+(i-1)*3),2)],...            'Color', [0,1,0], 'LineWidth', 3)        line([Points((2+(i-1)*3),1) Points((3+(i-1)*3),1)], [Points((2+(i-1)*3),2) Points((3+(i-1)*3),2)],...            'Color', [0,1,0], 'LineWidth', 3)    endend% Generate the fake saliency mapif Grave_K~=0    Grave_Point_x=round(Grave_Point_x/(Grave_K*3));    Grave_Point_y=round(Grave_Point_y/(Grave_K*3));    fake_saliency(Grave_Point_y-10:Grave_Point_y+10,...        Grave_Point_x-10:Grave_Point_x+10)=255;endthick=max(size(fake_saliency,1),size(fake_saliency,2));fake_saliency = imdilate(fake_saliency,strel('ball',round(thick/30),round(thick/30)));fake_saliency = imfilter(fake_saliency,fspecial('gaussian', [round(thick/10) round(thick/10)], round(thick/10)));fake_saliency=im2double(fake_saliency);if Grave_K~=0    fake_saliency=fake_saliency.*(0.9/max(max(fake_saliency)));endsubplot(133);imshow(fake_saliency), colormap(hot); title('Fake saliency map');

3 仿真结果

4 参考文献

[1] Fu, H. , and  X. Cao . "Forgery Authentication in Extreme Wide-Angle Lens Using Distortion Cue and Fake Saliency Map." IEEE Transactions on Information Forensics & Security 7.4(2012):1301-1314.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值