分享好友 最新动态首页 最新动态分类 切换频道
【图像隐写】DCT数字水印嵌入与提取【含GUI Matlab源码 943期】
2024-12-25 16:28

🚅座右铭:行百里者,半于九十。

🏆代码获取方式
CSDN Matlab武动乾坤—代码获取方式

更多Matlab图像处理仿真内容点击👇
①Matlab图像处理(进阶版

⛳️关注CSDN Matlab武动乾坤,更多资源等你来

1 基本DCT变换
目前,基于DCT域的水印方法已经成为数字水印算法研究的热点,它的核心思想就是通过离散傅立叶变换对图像块进行处理后,再选择变换域中的一些系数值依据一定规则来嵌入水印。
由于图像块中DCT系数频带分布由左上角的直流分量DC往下对应的系数频率由低频升至高频,因此在不影响原图质量的前提下,可将水印信息根据能量大小嵌入相应系数频带中。通过图像块量化与水印嵌入结合的处理方法将水印信息均匀分布在图像的整个空间域,在图像裁剪和滤波方面,变换域的水印比在空间域的更能表现出一定的鲁棒性。

2.2 水印提取算法
将嵌入水印的图像P’分块处理,并对各子块进行二维DCT变换,由密钥3和4推断所选择的水印系数,若x(m)≤x(n,则水印信息为0,若x(m)>x(n,则水印信息为1,再利用密钥1和2将初步水印的信息解密再进行Arnold逆变换,最终提取出水印信息。

function varargout = untitled(varargin)
% UNTITLED M-file for untitled.fig
% UNTITLED, by itself, creates a new UNTITLED or raises the existing
% singleton*.
%
% H = UNTITLED returns the handle to a new UNTITLED or the handle to
% the existing singleton*.
%
% UNTITLED(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in UNTITLED.M with the given input arguments.
%
% UNTITLED(‘Property’,‘Value’,…) creates a new UNTITLED or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before untitled_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to untitled_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 untitled

% Last Modified by GUIDE v2.5 08-May-2021 09:30:13

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @untitled_OpeningFcn, …
‘gui_OutputFcn’, @untitled_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before untitled is made visible.
function untitled_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 untitled (see VARARGIN)

% Choose default command line output for untitled
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes untitled wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.
function varargout = untitled_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 structure
varargout{1} = handles.output;

% — Executes on button press in OpenImage.
function OpenImage_Callback(hObject, eventdata, handles)
% hObject handle to OpenImage (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global mydata
[filename,pathname]=uigetfile(‘.’,‘select picture to open’);
if filename==0
return;
end
str=[pathname,filename];
mydata.a=imread(str);
mydata.a=rgb2gray(mydata.a);
axes(handles.YsImage);
imshow(mydata.a);
%按钮
set(handles.OpensyImage, ‘Enable’, ‘on’);
set(handles.AddImage, ‘Enable’, ‘off’);
set(handles.Extractsy, ‘Enable’, ‘off’);
set(handles.popupmenu1, ‘Enable’, ‘off’);
set(handles.popupmenu2, ‘Enable’, ‘off’);
set(handles.OutputImage, ‘Enable’, ‘off’);

%clear static text

set(handles.text3, ‘String’, ‘’); %clear nc

%clear img2 TODO…
cla(handles.SyImage, ‘reset’);
set(handles.SyImage, ‘Box’, ‘on’);
set(handles.SyImage, ‘XTick’, inf);
set(handles.SyImage, ‘YTick’, inf);

cla(handles.ClhImage, ‘reset’);
set(handles.ClhImage, ‘Box’, ‘on’);
set(handles.ClhImage, ‘XTick’, inf);
set(handles.ClhImage, ‘YTick’, inf);

cla(handles.TqsyImage, ‘reset’);
set(handles.TqsyImage, ‘Box’, ‘on’);
set(handles.TqsyImage, ‘XTick’, inf);
set(handles.TqsyImage, ‘YTick’, inf);

% — Executes on button press in AddImage.
function AddImage_Callback(hObject, eventdata, handles)
% hObject handle to AddImage (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global mydata
cimage=mydata.a;
a1_string=get(handles.popupmenu2,‘String’);
p1_string=a1_string{get(handles.popupmenu2,‘Value’)};
switch p1_string
case ‘10’
alpha=10;
case ‘20’
alpha=20;
case ‘30’
alpha=30;
case ‘40’
alpha=40;
case ‘50’
alpha=50;
case ‘60’
alpha=60;
end
OutputImage=DCT(mydata.a,mydata.b,alpha);
a2_string=get(handles.popupmenu1,‘String’);
p2_string=a2_string{get(handles.popupmenu1,‘Value’)};
gjfs=gongji(OutputImage,p2_string);
mydata.c=gjfs;
axes(handles.ClhImage);
imshow(mydata.c);
set(handles.Extractsy, ‘Enable’, ‘on’);
set(handles.OutputImage, ‘Enable’, ‘on’);

function gjfs=gongji(image,gj)
switch (gj)
case ‘没有受到攻击’

 

% WImage5=a1;
gjhimage=im2double(gjhimage);
% gjhimage=wextend(‘2D’,‘sym’,gjhimage,8);
cnum=10;
dctm=dctmtx(8);
P1=dctm;
P2=dctm.‘;
imageDCT=blkproc(gjhimage,[8,8],‘P1xP2’,dctm,dctm.’);
DCTvar=im2col(imageDCT,[8,8],‘distinct’).';
n=size(DCTvar,1);
DCTvar=(sum(DCTvar.*DCTvar)-(sum(DCTvar)/n).^2)/n;
[dum,order]=sort(DCTvar);
cnum=64-cnum;

1 matlab版本
2014a

2 参考文献
[1]万谊丹.基于Arnold和DCT的抗剪切攻击图像水印研究[J].网络安全技术与应用. 2021,(08)

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 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

最新文章
AI创作全攻略:如何高效利用人工智能进行内容创作与优化
随着人工智能()技术的迅猛发展它在各个领域的应用日益广泛内容创作也不例外。不仅在艺术创作中展现出惊人的潜力还在写作、设计、编程等多个领域发挥着关键作用。本文将为您提供一份全面的创作攻略帮助您高效利用人工智能实内容创作与优化
2023人保百万医疗险、人保人人安康百万医疗保险怎么样?
投保年龄:28天-60周岁(61-100周岁不接受首次投保或非续保投保)保障期限:1年缴费期限:一次性缴清一般医疗费用:400万方案:200万保额;500万方案:200万保额;650万方案:200万保额。被保险人自获得被保资格之日起遭受意外伤害或自获得被
EasiNote(希沃白板5) 5.1.17.74972
EasiNote(希沃白板5) 是一款针对信息化教学需求设计的互动式多媒体教学平台。EasiNote(希沃白板5)以多媒体交互白板工具为应用核心,提供云课件、素材加工、学科教学等多种备课、授课的常用功能。与上一代白板软件相比,EasiNote 5的教学互
2022年Google开发者大会纪录
有幸参加过2019谷歌开发者大会,当时就让我相当的震撼。给我的感觉,谷歌是一家技术赋能的企业,更是一家真心希望用技术改变未来的企业。时过三年,谷歌开发者大会又一次在中国召开,很幸运这一次通过CSDN又
AI声音字幕制作指南:从创建文件到完整创作流程详解
在数字化时代,技术的飞速发展为咱们带来了多便利,其中之一便是声音字幕制作。这项技术不仅可以为视频内容添加专业的语音旁白,还能实现自动字幕识别,大大提升了工作效率。本文将为您详细介绍声音字幕制作的完整流程,从创建文件到最创作
2025 年的 SEO:专家揭示主要趋势和见解
​​我们喜欢说 SEO 总是在变化,2024 年证明了这一点。几乎没有比这更具挑战性和令人兴奋的一年了。但随着我们进入 2025 年,我们确信我们还没有看到它的最后一刻。随着每个人都依赖 AI,搜索和搜索行业将迎来另一场巨变。在这篇文章中,
DELL 戴尔 P2217H 显示器开箱轻测
最近想要买一台1080P分辨率的21英寸带DP接口的小屏幕显示器。初步看中了优派VG2253型号和戴尔P2217H型号,最后因为遇到戴尔显示器搞促销,就入手了P2217H。现在就和大家一起分享显示器的开箱和使用心得。戴尔P2217H显示器的基本参数:可视
AI智能助手 33.1116
AI助手是一款基于人工智能技术的智能应用程序,包括AI聊天问答、AI绘图、AI翻译、AI写作、AI助手、云笔记、云便签等多个模块,可以帮助用户解决各种问题,提高工作和生活的效率。细节修复
11英寸便携娱乐笔记本 戴尔M101z评测
作者:小熊在线-yansan 前言  如今的IT设备已经向轻薄化发展,比如手机、电视机。笔记本电脑也是如此,谁不喜欢又轻又薄的笔记本电脑呢?但在很多人眼里,轻薄笔记本电脑的价格往往非常昂贵,小笔记本仅剩低性能的上网本可以选择。在AMD
chatGPT爆火,什么时候中国能有自己的“ChatGPT“
目录 引言 一、ChatGPT爆火 二、中国何时能有自己的"ChatGPT" 三、为什么openai可以做出chatGPT? 四、结论 随着人工智能技术的不断发展,自然语言处理技术也逐渐成为了研究的热点之一。其中,ChatGPT作为一项领先的自
相关文章
推荐文章
发表评论
0评