分享好友 最新动态首页 最新动态分类 切换频道
【图像隐写】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 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

最新文章
商品标题优化的技巧有哪些
一、商品标题优化的技巧有哪些?1、利用工具找准关键词。商品标题其实就是由各种不同的关键词组合而成,所以关键词的选取对于商品标题的好坏至关重要。找准关键词的技巧不止一种,但如果你对五花八门的技巧感到摸不着头脑,那可以借助工具
跟着徐霞客游湖南丨探剧幕后:用三百年多前的“剧本”编剧
华声在线12月12日讯(通讯员 李希平 记者 王一辰 李梓潇)策游湖南系列之“跟着徐霞客游湖南”成果发布将于12月21日在永州九嶷山举行。微短剧大赛是主体活动之一,目前大赛已征集到近百部作品。其中,一部名为《走霞客故道 看碧水丹霞》的
实时更新:佛山南海区到宣城宁国整车物流-2024讲信誉+排名一览
  佛山市南海区鑫智惠物流部 充分虑客户的各种需求,把服务延伸到售,并把"用户的满意"作为衡量我们服务的,在尽大努力来用户各种需求的同时,也为客户提供多种个性化投放,将客户的需求变为现实,实现大程度上的双赢!  佛山市南海区
详细的SEO处理方案应当包括这些步骤
  作为SEOER,你应当有才能开发一套完全的SEO解决方案。如果你经营过一个大型网站,你可能对这个解决方案有很深的了解。SEO解决方案的核心思想是整个SEO进程(剖析、策略、人员配置)等都包含在内。  一个SEO方案的价值是几百元吗?往
罗振宇官宣华为Mate X6:原生鸿蒙打造AI新体验
近日,知名知识分享者罗振宇在一则特别视频中,宣布华为成为其跨年演讲的合作伙伴,并激动地展示了华为最新款折叠屏手机Mate X6。这款手机不仅在设计上独具匠心,更在智能化与AI技术上展现出强大的能力,引发了广泛关注。罗振宇在视频中对M
用python写一个简单ai代码 python制作ai
目录一、注册OpenAI二、搭建网站及其框架三、AI聊天机器人四、AI绘画机器人 ChatGPT 最近在互联网掀起了一阵热潮,其高度智能化的功能能够给我们现实生活带来诸多的便利,可以帮助你写文章、写报告、写周报、做表格、做策划甚至还会写代码
微信小程序分销返佣模式
小编将用微店的推广员为例进行介绍推⼴员,是微店推出的⼀款可以帮助商家拓宽推⼴渠道的⼯具,商家可以发动员⼯、推⼴员、亲朋好友转发带有专属标识的⼆维码图⽚/链接,邀请他们分享到朋友圈、群聊中,在其成功卖货后给予佣⾦奖励⾦,以此
数据湖分析如何面向对象存储OSS进行优化?
数据湖当前在国内外是比较热的方案,MarketsandMarkets (https://www.marketsandmarkets.com/Market-Reports/data-lakes-market-213787749.html)市场调研显示预计数据湖市场规模在2024年会从2019年的79亿美金增长到201
用声音进行陪伴:华为阅读定制人声功能真的太好用了!
提起华为阅读,相信很多华为手机的用户都不陌生,它是一款体验非常出色的阅读应用,拥有百万级的海量书库内容,并且可以提供优秀的听书体验。而且在听书的过程中我还发现,华为阅读是支持定制人声功能的,只需要根据页面指引,用自己的声音
需求经理和ai数据标注有什么区别
工作内容:在产品研发生命周期中,负责相关产品的需求采集与分析、应用架构设计、系统分析与应用设计等工作:1.产品总体架构和应用规划:包括应用架构设计,产品三级目标确定,产品概要需求编写和评审,以应用架构师为主。2.详细需求分析、
相关文章
推荐文章
发表评论
0评