semanurbilada/dct-image-steganography-study

GitHub: semanurbilada/dct-image-steganography-study

基于离散余弦变换的图像隐写术研究框架,提供数据嵌入、质量评估与鲁棒性分析的完整实验流水线。

Stars: 0 | Forks: 0

# 🎯 高级基于 DCT 的图像隐写术研究 一个简单且高效的**基于 DCT 的图像隐写系统**,主要侧重于: - 🔒 不可见性 - 🛡️ 鲁棒性 - 📦 嵌入容量 ## 📌 概述 本项目使用**离散余弦变换 (DCT)** 将秘密数据隐藏在图像中,类似于 JPEG 压缩。 ✅ 核心思想: - 在**频域**中嵌入数据 - 仅使用 **Y(亮度)通道** - 使用 **LSB** 修改 **AC** 和 **DCT 系数** ## ⚙️ 工作流程

Workflow

该系统遵循类似 JPEG 的 pipeline,将数据直接嵌入到 DCT 系数中,随后将其重构为有效的图像。提取过程则反向执行相同的变换步骤。 ## 📊 结果示例 ### 🔹 图像质量 | 图像 | PSNR | SSIM | |------|------|------| | Astronaut | 39.35 dB | 0.954 | | Lenna | 36.17 dB | 0.953 | ➡️ 高相似度 → 嵌入在视觉上被隐藏 🔗 代码:[`final/quality_metrics.py`](final/quality_metrics.py) ### 📸 视觉对比

➡️ Stego 图像在视觉上与原始图像难以区分 ### 🔹 鲁棒性 - ✅ JPEG 压缩 → 恢复率极高(约 100%) - ❌ 噪声(高斯 / 椒盐噪声)→ 恢复率接近 0% ➡️ 抗压缩能力强,抗噪声能力弱
📊 [查看详细结果!](https://github.com/semanurbilada/dct-image-steganography-study/tree/main/images) 🔗 代码: - [`final/attack_jpeg.py`](final/attack_jpeg.py) - [`final/attack_noise.py`](final/attack_noise.py) - [`final/extraction_test.py`](final/extraction_test.py) ### 🔹 容量分析 - 理论容量 > 有效容量 - 取决于**可用的 DCT 系数** 🔗 代码:[`final/max_capacity_analysis.py`](final/max_capacity_analysis.py) ## 📸 输出示例

➡️ 热力图显示,嵌入是**基于块的**,并且在频域中**全局分布** 🔗 代码:[`final/embedding_heatmap.py`](final/embedding_heatmap.py) ### 📈 分析可视化

➡️ PSNR-BPP 曲线展示了容量与质量之间的权衡 ➡️ 直方图分析证实了 cover 图像与 stego 图像之间的统计相似性 ## 📂 项目结构 ``` core/ → DCT, zigzag, embedding logic docs/ → Reports (midterm & final) midterm/ → Basic steganography pipeline final/ → Analysis (JPEG, noise, metrics, heatmaps) images/ → Datasets, results, graphs ├── astronaut.png # Original cover image (Astronaut) ├── lenna.png # Original cover image (Lenna) ├── stego_astronaut.png # Stego image with embedded data (Astronaut) ├── stego_lenna.png # Stego image with embedded data (Lenna) ├── graphs/ # Generated plots and statistical visualizations ├── jpeg_attacks/ # Output images after JPEG compression attacks └── noise_attacks/ # Output images after noise-based attacks ``` ## ▶️ 如何运行 ### 基础 pipeline ``` python3 -m midterm.run_stego_algorithm python3 -m midterm.extract_hidden_message python3 -m final.max_capacity_analysis.py ``` ### 分析 或者,您可以直接在它们各自的目录中运行脚本: ``` python3 -m attack_jpeg.py python3 -m attack_noise.py python3 -m hitogram_analysis.py python3 -m jpeg_vs_noise_plot.py python3 -m quality_metrics.py ``` ## 🙏 致谢 基于:
[DCT-Image-Steganography(原始仓库)](https://github.com/MasonEdgar/DCT-Image-Steganography),遵循 MIT License。 扩展了分析、可视化和鲁棒性评估。 ## 👩‍💻 作者 Semanur Bilada (MSc)
高级数字图像处理 ## 📌 引用 如果您在研究中使用了 dct-image-steganography-study,请引用: ``` @software{dct-image-steganography-study2026, title = {Advanced DCT-Based Image Steganography Study}, author = {Semanur Bilada}, year = {2026}, url = {https://github.com/semanurbilada/dct-image-steganography-study} } ``` ## 许可证 MIT License - 详情请参阅 [LICENSE](https://github.com/semanurbilada/dct-image-steganography-study?tab=MIT-1-ov-file) 文件。
标签:DCT变换, DNS 反向解析, 信息隐藏, 图像隐写术, 数据隐写, 逆向工具, 鲁棒性分析