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

简介: 【图像检测-显著图】基于失真提示实现鱼眼图显著图计算附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代码问题可私信交流。

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


相关文章
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
基于粒子滤波器的电池剩余使用寿命计算matlab仿真
本研究基于粒子滤波器预测电池剩余使用寿命(RUL),采用MATLAB2022a实现。通过非线性动力学模型模拟电池老化过程,利用粒子滤波器处理非线性和非高斯问题,准确估计电池SOH变化趋势,进而预测RUL。系统仿真结果显示了良好的预测性能。
|
1月前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
2月前
|
算法
MATLAB符号计算
【10月更文挑战第9天】MATLAB不仅擅长数值计算,还具备强大的符号计算功能,支持代数运算、方程求解、微积分等。本文介绍如何使用MATLAB的符号工具箱进行符号变量定义、方程求解、微分积分及矩阵运算,并通过多个实际应用案例展示了其在机械系统、电路分析、经济优化和物理运动学等领域的应用。此外,文章还提供了符号计算的最佳实践和未来展望。
64 2
|
2月前
|
安全 调度
电力系统的负荷损失和潮流计算matlab仿真,对比最高度数,最高介数以及最高关键度等节点攻击
本课题研究节点攻击对电力系统稳定性的影响,通过模拟最高度数、最高介数和最高关键度攻击,对比不同攻击方式下的停电规模。采用MATLAB 2022a 进行系统仿真,核心程序实现线路断开、潮流计算及优化。研究表明,节点攻击会导致负荷损失和系统瘫痪,对电力系统的安全构成严重威胁。通过分析负荷损失率和潮流计算,提出减少负荷损失的方法,以提升电力系统的稳定性和安全性。
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
3月前
|
监控 算法 数据安全/隐私保护
基于视觉工具箱和背景差法的行人检测,行走轨迹跟踪,人员行走习惯统计matlab仿真
该算法基于Matlab 2022a,利用视觉工具箱和背景差法实现行人检测与轨迹跟踪,通过构建背景模型(如GMM),对比当前帧与模型差异,识别运动物体并统计行走习惯,包括轨迹、速度及停留时间等特征。演示三维图中幅度越大代表更常走的路线。完整代码含中文注释及操作视频。
|
2月前
|
算法 数据安全/隐私保护
织物图像的配准和拼接算法的MATLAB仿真,对比SIFT,SURF以及KAZE
本项目展示了织物瑕疵检测中的图像拼接技术,使用SIFT、SURF和KAZE三种算法。通过MATLAB2022a实现图像匹配、配准和拼接,最终检测并分类织物瑕疵。SIFT算法在不同尺度和旋转下保持不变性;SURF算法提高速度并保持鲁棒性;KAZE算法使用非线性扩散滤波器构建尺度空间,提供更先进的特征描述。展示视频无水印,代码含注释及操作步骤。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
212 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。