图像鲁棒性--常见14种图像攻击matlab实现

这篇具有很好参考价值的文章主要介绍了图像鲁棒性--常见14种图像攻击matlab实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、14种图像攻击

( a )JPEG压缩。质量因子Q分别为10%、30%、50%、70%、90%。

( b )高斯噪声。平均μ为0,方差σ分别为0.001、0.005和0.1。

( c )椒盐噪音。平均μ为0,方差σ分别为0.001、0.005、0.1。

( d )散斑噪声。平均μ为0,方差σ分别为0.01、0.05、0.1。

( e )平均滤波。窗口大小分别为3 × 3、5 × 5和7 × 7。

( f )中值滤波。窗口大小分别为3 × 3、5 × 5和7 × 7。

( g )高斯低通滤波。窗口大小分别为3 × 3、5 × 5和7 × 7。

( h )中心修剪,比例为20%和50%。

( i )边缘修剪,比例为10%和20%。

( j )旋转。旋转角度分别为10°、30°、50°。

( k )平移。由于数据库的图像大小不同,在Holidays数据库中的平移距离分别为是(80,50)、(160,100)和(320,200)。ImageNet数据库中的平移距离为分别为(16,10),(32,20)、(40,25)。

( l )缩放。缩放比例分别为0.3、0.5、0.75、1.5和3。

( m )颜色直方图均衡化。

( n )伽马校正系数为0.8。

二、matlab实现

1、JPEG压缩攻击

% jpegattack.m

function jpegattack_img=jpegattack(img,qualityfactor)
imwrite(img,'jpegattackimage.jpg','jpg','quality',qualityfactor);
jpegattack_img = imread('jpegattackimage.jpg');
end

2、高斯噪声攻击

% gaussianattack.m

function gaussianattack_img=gaussianattack(img,var1)
gaussianattack_img=imnoise(img,'gaussian',0,var1);
end

3、椒盐噪声攻击

% saltpepperattack.m

function saltpepperattack_img=saltpepperattack(img,var2)
saltpepperattack_img=imnoise(img,'salt & pepper',var2);
end

4、散斑噪声攻击

% speckleattack.m

function speckleattack_img=speckleattack(img,var3)
speckleattack_img=imnoise(img,'speckle',var3);
end

5、高斯低通滤波攻击

% gaussianlowpassattack.m

function gaussianlowpassattack_img=gaussianlowpassattack(img,k)
h = fspecial('gaussian',[k,k]);
% B=imfilter(A,h,options,...)其中options可以是:
% 'symmetric'边界之外的输入数组值是通过沿数组边界对数组进行镜面反射得到
% 'replicate'边界之外的输入数组值假定为等于最近的数组边界值
% 'circular'边界之外的输入数组值是通过隐式假设输入数组具有周期性来计算(以上为填充选项)

% 'same'默认选项.输出数组与输入数组大小相同
% 'full'输出数组是完全滤波后的结果(以上为输出大小选项)

% 'corr'默认选项.使用相关性执行多维滤波,这与filter2执行滤波的方式相同
% 'conv'使用卷积执行多维滤波(以上为相关性和卷积选项)
gaussianlowpassattack_img=imfilter(img,h,'replicate');
end

6、均值滤波攻击

% meanattack.m

function meanattack_img=meanattack(img,n)
% 第一种方法
% h=fspecial('average',[n,n]);
% meanattack_img=imfilter(img,h);

% 第二种方法
% imfilter函数为多维图像的 N 维滤波
h=fspecial('average',[n,n]);
img_m(:,:,1)=imfilter(img(:,:,1),h);
img_m(:,:,2)=imfilter(img(:,:,2),h);
img_m(:,:,3)=imfilter(img(:,:,3),h);
meanattack_img=img_m;
end

7、中值滤波攻击

% medianattack.m

function medianattack_img=medianattack(img,m)
% medfilt2函数为二维中位数滤波,第一个参数必须是二维的.
% 当需要对彩图像进行中值滤波时,需要分别对三个R,G,B通道进行中值滤波即可
medianattack_img(:,:,1)=medfilt2(img(:,:,1),[m,m]);
medianattack_img(:,:,2)=medfilt2(img(:,:,2),[m,m]);
medianattack_img(:,:,3)=medfilt2(img(:,:,3),[m,m]);
end

8、中心裁剪攻击

% centeredattack.m

function centeredattack_img=centeredattack(img,percentage)
img_cc=img;
row=size(img_cc,1);% row为图像的长
col=size(img_cc,2);% col为图像的宽
row_begin=round((row-round(row*percentage))/2);
row_end=round((col-round(col*percentage))/2)+round(row*percentage);
col_begin = round((col-round(col*percentage))/2);
col_end = round((col-round(col*percentage))/2) + round(col*percentage);
img_cc(row_begin:row_end,col_begin:col_end,:) = 0;% 将选中的区域的值置为0,即显示为白色
centeredattack_img=img_cc;
end

9、边缘裁剪攻击

% edgeattack.m

function edgeattack_img=edgeattack(img,percentage)
img_ec=img;
row=size(img_ec,1);
col=size(img_ec,2);
row_half=round(round(row*percentage)/2);
col_half=round(round(col*percentage)/2);
% 将图像四条边缘条值置为0,即显示为黑色
img_ec(1:row_half,:,:) = 0;
img_ec(:,1:col_half,:) = 0;
img_ec((row-row_half):row,:,:) = 0;
img_ec(:,(col-col_half):col,:) = 0;
edgeattack_img=img_ec;
end

10、旋转攻击

% rotationattack.m

function rotationattack_img=rotationattack(img,angle)
 % J=imrotate(I,angle,method,bbox)中method是文本字符串,需要引号引出,method包括:'nearest'-最临近插值(默认值)、'bilinear'-双线性插值、'bicubic’-双三次插值
 % bbox是文本字符串,需要引号引出,bbox包括:'crop’输出的图像B和输入的图像A保持一致的尺寸,裁剪旋转的图像至合适的大小;'loose’输出足够容纳整个旋转图像的图像B,图像B通常比图像A-默认值
 rotationattack_img=imrotate(img,angle,'bicubic','crop');% 此函数将图像I围绕其中心点逆时针方向旋转angle度。要顺时针旋转图像,请为angle指定负值。
end

11、平移攻击

% translationattack.m

function translationattack_img=translationattack(img,location)
row=size(img,1);
col=size(img,2);
image_t=zeros(row,col,3,'uint8');% 注意一定需要加上'uint8',否则只能显示白色图像
image_t((location(1,1)+1):row,(location(1,2)+1):col,:,:)=img(1:(row-location(1,1)),1:(col-location(1,2)),:,:);
translationattack_img=image_t;
end

12、缩放攻击

% rescalingattack.m

function rescalingattack_img=rescalingattack(img,scale)
row=size(img,1);
col=size(img,2);
row_scaling=round(row*scale);% 考虑小数的情况,取四舍五入
col_scaling=round(col*scale);
image_s=imresize(img,[row_scaling,col_scaling]);
rescalingattack_img=image_s;
end

13、颜色直方图均衡化攻击

% histogramattack.m

function histogramattack_img=histogramattack(img)
% histeq函数使用直方图均衡增强对比度(主要针对灰度图像使用,若对RGB图像处理,则分别需要对三个r,g,b通道处理)
% J=histeq(I,n) 指定直方图均衡后的灰度级数n,默认值为64
% histogramattack_img=histeq(img)使用该语句只能处理一个通道
r=img(:,:,1);
g=img(:,:,2);
b=img(:,:,3);
image_h(:,:,1)=histeq(r,256);
image_h(:,:,2)=histeq(g,256);
image_h(:,:,3)=histeq(b,256);
histogramattack_img=image_h;
end

14、伽马校正攻击

% gammaattack.m

function gammaattack_img=gammaattack(img,gamma)
% 第一种写法
% img=im2double(img);% 若不使用im2double,会报错:错误使用 .^, 整数只能提升为正整数幂
% gammaattack_img=img.^gamma;

% 第二种写法
% J=imadjust(I,[low_in high_in],[low_out high_out],gamma),imadjust函数调整图像强度值或颜色图
% 将灰度图像 I 中的强度值映射到 J 中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值,其中 gamma指定描述值I和值J关系的曲线形状
gammaattack_img=imadjust(img,[],[],gamma);
end

15、主函数

% main.m

clc;clear;close all;
N=512;
img=imread('football.jpg');
img=imresize(img,[N N],'bicubic');% 采用双三次插值(bicubic)将图像大小归一化为512*512大小,B = imresize(A,[mrows ncols],method)将图片A由参数method指定的插值运算方法来改变图像的大小到长宽为[mrows ncols]

% 1、JPEG压缩攻击(qualityfactor可取参数10,30,50,70,90)
qualityfactor=10;
jpegattack_img=jpegattack(img,qualityfactor);
figure(1),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(jpegattack_img);
title('JPEG压缩攻击后的图像');

% 2、高斯噪声攻击(var1可取参数0.001,0.005,0.1)
var1=0.001;
gaussianattack_img=gaussianattack(img,var1);
figure(2),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(gaussianattack_img);
title('高斯噪声攻击后的图像');

% 3、椒盐噪声攻击(var2可取参数0.001,0.005,0.1)
var2=0.001;
saltpepperattack_img=saltpepperattack(img,var2);
figure(3),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(saltpepperattack_img);
title('椒盐噪声攻击后的图像');

% 4、散斑噪声攻击(var3可取参数0.01,0.05,0.1)
var3=0.01;
speckleattack_img=speckleattack(img,var3);
figure(4),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(speckleattack_img);
title('散斑噪声攻击后的图像');

% 5、高斯低通滤波攻击(k1可取参数357)
k1=3;
gaussianlowpassattack_img=gaussianlowpassattack(img,k1);
figure(5),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(gaussianlowpassattack_img);
title('高斯低通滤波攻击后的图像');

% 6、均值滤波攻击(k2可取参数357)
k2=3;
meanattack_img=meanattack(img,k2);
figure(6),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(meanattack_img);
title('均值滤波攻击后的图像');

% 7、中值滤波攻击(k3可取参数357)
k3=3;
medianattack_img=medianattack(img,k3);
figure(7),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(medianattack_img);
title('中值滤波攻击后的图像');

% 8、中心裁剪攻击(percentage可取参数0.20.5)
percentage=0.2;
centeredattack_img = centeredattack(img,percentage);
figure(8),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(centeredattack_img);
title('中心裁剪攻击后的图像');

% 9、边缘裁剪攻击(percentage可取参数0.10.2)
percentage=0.1;
edgeattack_img = edgeattack(img,percentage);
figure(9),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(edgeattack_img);
title('边缘裁剪攻击后的图像');

% 10、旋转攻击(angle可取参数10,3050)
angle=30;
rotationattack_img=rotationattack(img,angle);
figure(10),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(rotationattack_img);
title('旋转攻击后的图像');

% 11、平移攻击(Holidays数据集中(80,50),(160,100)(320,200),注意图像规格为512*512)
location=[80,50];
translationattack_img=translationattack(img,location);
figure(11),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(translationattack_img);
title('平移攻击后的图像');

% 12、缩放攻击(scale可取参数0.3,0.5,0.75,1.53)
scale=3;
rescalingattack_img=rescalingattack(img,scale);
figure(12),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(rescalingattack_img);
title('缩放攻击后的图像');

% 13、颜色直方图均衡化攻击(无参数)
histogramattack_img=histogramattack(img);
figure(13),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(histogramattack_img);
title('颜色直方图均衡化攻击后的图像');

% 14、伽马校正攻击(gamma可取参数0.8)
gamma=0.8;
gammaattack_img=gammaattack(img,gamma);
figure(14),
subplot(121),imshow(img);
title('原始图像');
subplot(122),imshow(gammaattack_img);
title('伽马校正攻击后的图像');

三、matlab实现效果

1、JPEG压缩攻击
图像鲁棒性--常见14种图像攻击matlab实现
2、高斯噪声攻击
图像鲁棒性--常见14种图像攻击matlab实现

3、椒盐噪声攻击
图像鲁棒性--常见14种图像攻击matlab实现

4、散斑噪声攻击
图像鲁棒性--常见14种图像攻击matlab实现

5、高斯低通滤波攻击
图像鲁棒性--常见14种图像攻击matlab实现

6、均值滤波攻击
图像鲁棒性--常见14种图像攻击matlab实现

7、中值滤波攻击
图像鲁棒性--常见14种图像攻击matlab实现

8、中心裁剪攻击
图像鲁棒性--常见14种图像攻击matlab实现

9、边缘裁剪攻击
图像鲁棒性--常见14种图像攻击matlab实现

10、旋转攻击
图像鲁棒性--常见14种图像攻击matlab实现

11、平移攻击
图像鲁棒性--常见14种图像攻击matlab实现

12、缩放攻击
图像鲁棒性--常见14种图像攻击matlab实现

13、颜色直方图均衡化攻击
图像鲁棒性--常见14种图像攻击matlab实现

14、伽马校正攻击
图像鲁棒性--常见14种图像攻击matlab实现文章来源地址https://www.toymoban.com/news/detail-449597.html

到了这里,关于图像鲁棒性--常见14种图像攻击matlab实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【语音隐写】基于matlab奇异值分解SVD音频水印嵌入加噪滤波(检验鲁棒性含误码率)【含Matlab源码 3895期】

    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。 更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划

    2024年02月21日
    浏览(45)
  • 如何理解鲁棒性?为什么robustness会翻译为鲁棒性?

    鲁棒性,英文为Robustness(承受故障和干扰的能力),是许多复杂系统(包括复杂网络)的关键属性。复杂网络的鲁棒性研究对许多领域都非常重要。本文着重介绍了鲁棒性的基本定义、命名起源、分类区别、提升方法和具体应用,供大家学习参考。 1. 鲁棒性的基本定义 鲁棒

    2024年01月19日
    浏览(42)
  • 【图像去噪的滤波器】非局部均值滤波器的实现,用于鲁棒的图像去噪研究(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 Buades等

    2024年02月11日
    浏览(44)
  • 机器学习鲁棒性笔记

    鲁棒性(Robustness)在统计学和数据分析中是一个重要的概念。它指的是某个统计方法或模型对于异常值或偏离数据集正常分布的情况的敏感程度。一个鲁棒性较好的方法能够在存在异常值或数据分布不符合假设的情况下依然给出可靠的结果,而不会被极端值影响太大。 鲁棒

    2024年02月14日
    浏览(39)
  • 脆弱性-鲁棒性-反脆弱性

    哈喽大家好,我是咸鱼   在开始本篇文章之前,我想先问小伙伴们一个问题:   每个人都渴望稳定且有序的生活,但如果一个人的生活过于稳定有秩序且可预测,会有什么不好的影响吗?   如果你每天做同样的事情,都按照同样的方式来度过,一旦出现不可预测的变故,你

    2024年02月16日
    浏览(36)
  • 手机类目知识图谱的对抗学习与鲁棒性

    手机类目知识图谱的对抗学习与鲁棒性 作者:禅与计算机程序设计艺术 在电子商务行业,构建高质量的产品类目知识图谱对于提升搜索体验、推荐系统和供应链管理等关键业务至关重要。然而,由于类目信息的复杂性、动态性和噪声干扰,如何构建鲁棒、准确的知识图谱一直是

    2024年04月15日
    浏览(44)
  • 利用AI技术提高智能家庭的安全和鲁棒性

    作者:禅与计算机程序设计艺术 随着人们生活节奏的加快、信息化程度的提升、数字化、物联网等新技术的应用,传统的日常生活已经发生了翻天覆地的变化。而智能家居产品也正在受到越来越多人的青睐。然而,在这个日益开放的世界里,人们对安全和隐私保护的关注程度

    2024年02月06日
    浏览(50)
  • 深度学习中的鲁棒性和泛化性有什么区别

    鲁棒性(Robustness)和泛化性(Generalization)是评估模型性能时常用的两个术语,尤其在机器学习和统计建模领域。虽然这两个概念相关,但它们关注的方面有所不同。 鲁棒性 鲁棒性指的是模型在面对输入数据的小幅变动或存在噪声时仍能保持性能不受显著影响的能力。一个

    2024年02月21日
    浏览(43)
  • TransFusion:利用 Transformer 进行鲁棒性融合来进行 3D 目标检测

    Input-dependent 以往 Query 位置是随机生成或学习作为网络参数的,而与输入数据无关,因此需要额外的阶段(解码器层)来学习模型向真实对象中心移动的过程。 论文提出了一种基于center heatmap 的 input-dependent 初始化策略。(decoder :6 layers — 1 layer) 给定一个 d d d 维的 LiDAR

    2024年02月11日
    浏览(55)
  • 小成本大幅度增幅CNN鲁棒性,完美的结合GLCM+CNN

            本文以实验为导向,使用vgg16+GLCM实现一场精彩的新冠肺炎的分类识别,并且对比不加GLCM后的效果。在这之前,我们需要弄明白一些前缀知识和概念问题: GLCM (Gray-Level Co-occurrence Matrix),中文称为灰度共生矩阵,是一种用于图像纹理特征提取的统计方法。它是由

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包