ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【图像隐写】基于matlab GUI DWT与SVD数字水印 【含Matlab源码 253期】

【图像隐写】基于matlab GUI DWT与SVD数字水印 【含Matlab源码 253期】 欢迎来到海神之光博客之家✅博主简介热爱科研的Matlab仿真开发者修心和技术同步精进个人主页海神之光代码获取方式海神之光Matlab王者学习之路—代码获取方式⛳️座右铭行百里者半于九十。更多Matlab图像处理仿真内容点击①Matlab图像处理进阶版②付费专栏Matlab图像处理初级版⛳️关注CSDN海神之光更多资源等你来⛄一、简介随着互联网普及信息通讯技术的飞速发展多媒体技术得到了充分的应用。但是开放的互联网使这些多媒体信息的传输变得不安全而数字水印技术恰恰能保护这些多媒体信息的传输。数字水印技术通过一定的嵌入算法将一些可以用来标识多媒体数据的来源、版本、作者等标志性信息嵌入到多媒体数据中来保护多媒体数据的版权但是不影响原始数据的使用和价值并且不易被人察觉 。根据嵌入位置的不同数字水印算法分为空域和变换域水印算法。一般而言变换域水印算法稳健性较好主要的变换域有离散余弦变换 ( discrete cosine transform DCT)、离散小波变换 ( discrete wavelet transform DWT)和离散傅立叶变换 ( discrete fourier transform DFT)。在变换域中奇异值分解(singular value decomposition SVD) 是一种将矩阵对角化的方法。图像的奇异值有较好的稳定性利用这个原理可将水印信息嵌入到图像经过奇异值变换后的系数。1 离散余弦变换和奇异值分解1.1 离散余弦变换离散余弦变换(Discrete Cosine Transform, DCT)是 一组不同 频率和幅值的余弦函数和来近似衣服图像实际上是傅里叶变换的实数部分。由于离散余弦变量对于衣服图像其大部分可视化信息都集中在少数的变换系数上。因此离散余弦变量是数据压缩常用的一个变换编码方法它能将高相关数据能量集中使得它非常适用于图像压缩。一维离散信号f(x) 的离散余弦正变换为二维离散信号 f(x) 的离散余弦正变换为1.2 奇异值分解 SVD矩阵经过SVD 分解得到 1个奇异值矩阵 2个正交矩阵。图像的奇异值有很强的稳定性图像受到轻微的扰动时不会有显著改变。利用奇异值的这种特性如果将水印嵌入在载体图像 SVD 分解后的奇异值上当攻击者对含水印图像进行攻击扰乱时我们仍能从分解的奇异值中提取出水印信息。并且奇异值对应于图像的亮度特性而非视觉特性因此在奇异值上嵌入水印能保证水印的透明性保障了水印算法的隐蔽性与安全性。奇异值表征图像矩阵元素的相互关系在轻微扰动时不会发生变化因此在奇异值上嵌入水印不会损害图像的几何特性。 SVD 分解是线性代数中一种非常重要的分解方式其定义如 下。设矩阵 A m×n表示实数域 m×n表示矩阵大小 A进行 SVD 处理的公式为A USVT 3式中: U V 都是正交矩阵S是对角矩阵奇异值就是矩阵 S 的对角线元素 且这些对角线元素满足 : σ1≥σ2≥σ3≥…σr≥σr1 … σm 0 (其中 ,r表示 A的秩 )。2 打印和扫描的应用分析图像水印应用这种应用的挑战包括建立一种鲁棒的水印技术以从印刷媒体中提取水印。该技术应该能够抵抗由于打印过程而发生的数字到模拟转应该能够抵抗由于打印过程而发生的数字到模拟转换然后是扫描打印的水印图像时发生的模拟换然后是扫描打印的水印图像时发生的模拟 - 数数字转换。字转换。 在打印过程中带水印的图像是模拟格式。在打印过程中带水印的图像是模拟格式。 为了提取水印应使用打印扫描过程中的扫描仪或为了提取水印应使用打印扫描过程中的扫描仪或打印凸轮过程中的相机移动相机或数码相机通打印凸轮过程中的相机移动相机或数码相机通过捕获过程将模拟数据数字化过捕获过程将模拟数据数字化。。由于引入的攻击由于引入的攻击包括几何攻击例如旋转缩放切割和剪切以包括几何攻击例如旋转缩放切割和剪切以及由设备引起的扭曲打印和捕获过程可能具有挑及由设备引起的扭曲打印和捕获过程可能具有挑战性。战性。 这些失真通常是由在移动电话中存储图像时这些失真通常是由在移动电话中存储图像时的打印和压缩过的打印和压缩过程引起的。一些研究已经研究了这程引起的。一些研究已经研究了这些仍处于初期阶段的应用些仍处于初期阶段的应用。3 基 于 D C T —SV D 压缩量化的数字 水印3.1 水印算法由于具有以下主要特性,SVD能应用于数字水印算法中。 ① 图像的奇异值具有良好的稳定性即当图像发生微小变化时其奇异值不会显著变化② 图像奇异值发生较小改变时原图像也不会发生较大的变化。因此在图像的奇异值上嵌入水印不会对原图像的质量产生太大的影响。 SVD 嵌入水印能有效抵抗几何攻击但传统 SVD 数字水印算法在提取水印时需要原始载体图像增加了载体图像在传输时的不安全性降低了算法的效率。本文算法在嵌入水印过程中没有用到原图 SVD 分解后的正交矩阵所以提取水印时不需要原始载体图像。同时DCT 变换能很好地适应人眼的视觉特性本文先对载体图像分块可以将原图的变化集中在每一块中对每一块 DCT 变换得到近似分量 ;再将近似分量 进行 SVD 分解求得其奇异值矩阵。最后用量化方法得到含水印图像。32 水印的嵌入过程基于 DCT 和 SVD 的鲁棒性数字水印算法的水印嵌入 算法 过程 具体步骤如下1 选取 尺寸为 512˟512大小的图片 颜色模式为 RGB模式的图像 I。2 分离出图像的绿色通道 A。3 对绿色通道进行 DCT变换 ADCT。并对ADCT进行 SVD分解4 读取水印图片进行灰度化处理。5 对水印图片进行 DCT变换得矩阵 W。6 将水印嵌入到矩阵 S中即7 对 图像 进行逆 DCT变换将图像从频率域转换到空间域进而显示 嵌入水印得图像完成水印嵌入过程即3.3 水印提取过程本文所述提取含水印图片是经过打印扫描攻击之后的图片 ,. 本文采用数字水印盲 检测的方法提取水印时之需要嵌入强度 的值。 具体步骤如下1 读取 含水印图片 . 分离图像 RGB颜色通道中的绿色通道得图像 _.2 对图像 _. 进行 DCT变换并对其进行SVD分解。3 计算图像 D4 计算水印 ∗⛄二、部分源代码function varargout main(varargin)% MAIN M-file for main.fig% MAIN, by itself, creates a new MAIN or raises the existing% singleton*.%% H MAIN returns the handle to a new MAIN or the handle to% the existing singleton*.%% MAIN(‘CALLBACK’,hObject,eventData,handles,…) calls the local% function named CALLBACK in MAIN.M with the given input arguments.%% MAIN(‘Property’,‘Value’,…) creates a new MAIN or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before main_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to main_OpeningFcn via varargin.%% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one% instance to run (singleton)”.%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help main% Last Modified by GUIDE v2.5 25-May-2009 10:07:53% Begin initialization code - DO NOT EDITgui_Singleton 1;gui_State struct(‘gui_Name’, mfilename, …‘gui_Singleton’, gui_Singleton, …‘gui_OpeningFcn’, main_OpeningFcn, …‘gui_OutputFcn’, main_OutputFcn, …‘gui_LayoutFcn’, [] , …‘gui_Callback’, []);if nargin isstr(varargin{1})gui_State.gui_Callback str2func(varargin{1});endif nargout[varargout{1:nargout}] gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% — Executes just before main is made visible.function main_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to main (see VARARGIN)% Choose default command line output for mainhandles.output hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes main wait for user response (see UIRESUME)% uiwait(handles.figure1);% — Outputs from this function are returned to the command line.function varargout main_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} handles.output;% — Executes on mouse press over axes background.function axes1_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to axes1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% — Executes during object creation, after setting all properties.function popupmenu1_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,‘BackgroundColor’,‘white’);elseset(hObject,‘BackgroundColor’,get(0,‘defaultUicontrolBackgroundColor’));end⛄三、运行结果⛄四、matlab版本及参考文献1 matlab版本2014a2 参考文献[1]梁欣.基于DWT和SVD的彩色图像数字水印算法研究[J].计算机与数字工程. 2019,47(08)[2]张秀娟,朱春伟.一种基于DWT-SVD的图像数字水印算法[J].数字技术与应用. 2017,(10)3 备注简介此部分摘自互联网仅供参考若侵权联系删除 仿真咨询1 各类智能优化算法改进及应用生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化2 机器学习和深度学习方面卷积神经网络CNN、LSTM、支持向量机SVM、最小二乘支持向量机LSSVM、极限学习机ELM、核极限学习机KELM、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断3 图像处理方面图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知4 路径规划方面旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化5 无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配6 无线传感器定位及布局方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化7 信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化8 电力系统方面微电网优化、无功优化、配电网重构、储能配置9 元胞自动机方面交通流 人群疏散 病毒扩散 晶体生长10 雷达方面卡尔曼滤波跟踪、航迹关联、航迹融合
返回列表