【图像隐写】基于DWT+DCT实现图像水印隐藏提取(含PSNR、NCC、IF)附Matlab代码

简介: 🌿 往期回顾可以关注主页,点击搜索智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号处理 图像处理 路径规划 元胞自动机 无人机 物理应用 机器学习系列 车间调度系列 滤波跟踪系列 数据分析系列图像处理系列✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:

🌿 往期回顾可以关注主页,点击搜索

智能优化算法   神经网络预测    雷达通信        

无线传感器      电力系统          信号处理          

图像处理          路径规划         元胞自动机      

无人机            物理应用        机器学习系列      

车间调度系列    滤波跟踪系列   数据分析系列

图像处理系列

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真

🍎 往期回顾关注个人主页:Matlab科研工作室

👇 关注我领取海量matlab电子书和数学建模资料

🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信

🔥 内容介绍

一、引言

在当今数字化信息时代,图像作为信息传播的重要载体,其版权保护和信息安全至关重要。图像隐写技术通过将秘密信息(如版权信息、水印等)隐藏在宿主图像中,实现信息的安全传输与版权保护。基于离散小波变换(DWT)和离散余弦变换(DCT)相结合的方法,为图像水印的隐藏与提取提供了一种有效的途径。同时,峰值信噪比(PSNR)、归一化互相关(NCC)和图像保真度(IF)等指标用于评估水印嵌入和提取的性能。

二、图像隐写技术背景

(一)图像隐写需求

随着数字图像在互联网上的广泛传播,图像内容的版权保护、数据完整性验证以及秘密信息传输等问题日益突出。传统的加密技术虽然能保护信息的机密性,但容易引起攻击者的注意。图像隐写技术则是将秘密信息隐藏在看似普通的图像中,使攻击者难以察觉,从而实现更隐蔽的信息传输与保护。

(二)现有技术挑战

早期的图像隐写方法,如最低有效位(LSB)替换法,虽然简单易行,但对图像的修改直接在空间域进行,容易被察觉,且对图像的几何变换和噪声等干扰较为敏感。因此,需要更复杂、鲁棒性更强的隐写方法,基于变换域的方法应运而生,其中 DWT 和 DCT 变换在图像隐写领域展现出独特优势。

三、DWT(离散小波变换)原理

(一)多分辨率分析

DWT 是一种信号处理技术,基于多分辨率分析理论。它将图像分解为不同频率子带,通过低通滤波器和高通滤波器对图像进行分解,得到近似分量(低频部分)和细节分量(高频部分)。例如,对一幅图像进行一级 DWT 分解,会得到四个子带:LL1(低频近似子带)、HL1(水平高频子带)、LH1(垂直高频子带)和 HH1(对角高频子带)。LL1 子带保留了图像的主要能量和大部分视觉信息,而其他三个子带包含了图像的细节信息,如边缘和纹理。

(二)优势在图像隐写中的应用

DWT 的多分辨率特性使得图像在不同尺度上的特征可以被分离和分析。在图像隐写中,水印信息可以嵌入到不同的子带中。由于人类视觉系统(HVS)对低频信息更为敏感,对高频信息相对不敏感,因此水印可以更隐蔽地嵌入到高频子带中,对图像的视觉质量影响较小。同时,DWT 变换后的系数具有良好的局部性,使得嵌入的水印对图像的局部几何变换具有一定的鲁棒性。

四、DCT(离散余弦变换)原理

(一)变换过程

DCT 是将图像从空间域转换到频率域的一种变换方法。它将图像分成多个 8×8 的块,对每个块进行离散余弦变换。DCT 变换的基本思想是将一个信号表示为不同频率的余弦函数的加权和。通过 DCT 变换,图像的能量主要集中在低频系数上,而高频系数则包含了图像的细节信息。例如,在 JPEG 图像压缩中,DCT 被广泛应用,通过对 DCT 系数进行量化和编码来实现图像压缩。

(二)在图像水印中的作用

在图像水印技术中,DCT 常用于将水印信息嵌入到图像的频率域系数中。由于 DCT 变换后低频系数对图像的视觉质量影响较大,而高频系数对图像质量影响较小但对噪声和压缩等操作敏感,因此水印信息可以根据需要选择嵌入到低频或高频系数中。低频系数嵌入可以提高水印的鲁棒性,抵抗一些几何变换和滤波操作;高频系数嵌入则能使水印更隐蔽,对图像视觉质量影响更小。

五、基于 DWT + DCT 的图像水印隐藏与提取原理

(一)水印隐藏过程

  1. DWT 分解:首先对宿主图像进行 DWT 分解,得到不同频率子带。选择合适的子带,如高频子带,因为高频子带对图像视觉质量影响较小,适合嵌入水印。
  2. DCT 变换:对选定的 DWT 子带进一步进行 DCT 变换,将图像从小波域转换到频率域。
  3. 水印嵌入:将水印图像进行预处理,如二值化等操作,然后将其嵌入到 DCT 变换后的系数中。常见的嵌入方法有直接修改系数法,例如根据水印信息的比特值,对 DCT 系数进行微小的调整。
  4. 逆变换:嵌入水印后,先进行逆 DCT 变换,将图像从频率域转换回小波域,再进行逆 DWT 变换,得到嵌入水印后的图像。

(二)水印提取过程

  1. DWT 分解:对嵌入水印的图像进行 DWT 分解,得到与嵌入时相同的子带。
  2. DCT 变换:对该子带进行 DCT 变换,恢复到频率域。
  3. 水印提取:根据嵌入水印时的规则,从 DCT 系数中提取水印信息。例如,如果嵌入时是通过修改系数的大小来表示水印比特值,那么提取时就通过检测系数的变化来恢复水印信息。
  4. 后处理:对提取的水印信息进行后处理,如二值化还原等操作,得到最终的水印图像。

六、评估指标背景原理

⛳️ 运行结果

📣 部分代码

function [z] = ncc(x,y)

v = sum(sum(x.*y));%

w = sum(sum(x.^2));

z = v./w;

🔗 参考文献

[1]李卓.图像信息隐藏与隐写分析算法的研究[D].浙江大学,2010.

🍅往期回顾扫扫下方二维码



相关文章
|
6天前
|
人工智能 安全 Linux
【OpenClaw保姆级图文教程】阿里云/本地部署集成模型Ollama/Qwen3.5/百炼 API 步骤流程及避坑指南
2026年,AI代理工具的部署逻辑已从“单一云端依赖”转向“云端+本地双轨模式”。OpenClaw(曾用名Clawdbot)作为开源AI代理框架,既支持对接阿里云百炼等云端免费API,也能通过Ollama部署本地大模型,完美解决两类核心需求:一是担心云端API泄露核心数据的隐私安全诉求;二是频繁调用导致token消耗过高的成本控制需求。
4644 7
|
14天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
20386 112
|
9天前
|
人工智能 API 网络安全
Mac mini × OpenClaw 保姆级配置教程(附阿里云/本地部署OpenClaw配置百炼API图文指南)
Mac mini凭借小巧机身、低功耗和稳定性能,成为OpenClaw(原Clawdbot)本地部署的首选设备——既能作为家用AI节点实现7×24小时运行,又能通过本地存储保障数据隐私,搭配阿里云部署方案,可灵活满足“长期值守”与“隐私优先”的双重需求。对新手而言,无需复杂命令行操作,无需专业技术储备,按本文步骤复制粘贴代码,即可完成OpenClaw的全流程配置,同时接入阿里云百炼API,解锁更强的AI任务执行能力。
6498 2
|
10天前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
7869 7
|
12天前
|
人工智能 JavaScript API
保姆级教程:OpenClaw阿里云/本地部署配置Tavily Search skill 实时联网,让OpenClaw“睁眼看世界”
默认状态下的OpenClaw如同“闭门造车”的隐士,仅能依赖模型训练数据回答问题,无法获取实时新闻、最新数据或训练截止日期后的新信息。2026年,激活其联网能力的最优方案是配置Tavily Search技能——无需科学上网、无需信用卡验证,每月1000次免费搜索额度完全满足个人需求,搭配ClawHub技能市场,还能一键拓展天气查询、邮件管理等实用功能。
7451 5
|
5天前
|
JavaScript Linux API
保姆级教程,通过GACCode在国内使用Claudecode、Codex!
保姆级教程,通过GACCode在国内使用Claudecode、Codex!
3109 1
保姆级教程,通过GACCode在国内使用Claudecode、Codex!

热门文章

最新文章