simple and convenient Image steganography tool
with C++ & openCV
Windows GUI App imageIN used hinaLayer. ( here hinaLayer is Console Application)
hinaLayer 是一个使用 C++ 语言,依赖 openCV 库的非常简单的图片隐写工具
原本是为一个有着极友好界面的图片隐写工具 imageIN 写的临时用的组件
后来 imageIN 源码不幸丢失了:no_mouth:
imageIN的截图:
图片隐写是在图片内容本身添加信息,你可以图片中写入或者导出不可见的水印或者任何类型的文件,以此隐藏信息。还可以通过构造特殊的有容错性的信息,让图片即是被剪裁、修改还能还原写入的信息。
片
图片奇偶位写入、导出文件、水印
根据图片像素值的奇偶性写入文件或水印
图片像素低位写入、导出文件
根据图像像素低位内容写入信息,即 LSB 隐写
在图片频域(DTF)写入、导出水印
把图片转换到 DTF 频域,并写入水印图片
隐写文件
在图片中写入或导出文件,使用的是图片像素低位,与此不同的是会记录原文件大小与文件名
hinaLayer.exe 是在 windows 下的静态编译的控制台程序,使用时不需要机器上有 openCV
in_file
是输入文件,info_file
是作为写入内容的文件,out_file
是输出文件,rgb
是色彩通道(012顺序BGR,3为使用全部通道),rgb_
表示可以忽略色彩通道参数,使用默认值3
命令名 | 参数1 | 参数2 | 参数3 | 参数4 | 别名 | 功能 |
---|---|---|---|---|---|---|
s_in | in_file | info_file | out_file | rgb_ | (steg_write_file_lsb) | 在图片中隐写文件(LSB). |
s_out | in_file | out_file/dir | rgb_ | (steg_out_file_lsb) | ( 导出图片中隐写的文件(LSB). | |
[奇偶位] | ||||||
en_eo_mask | in_file | info_file | out_file | rgb_ | (en_mig) | 在图片奇偶位上写入水印 |
en_eo_file | in_file | info_file | out_file | rgb_ | (en_bin) | 在图片奇偶位上写入文件. |
de_eo_mask | in_file | out_file | rgb_ | (de_mig) | 导出图片奇偶位水印. | |
de_eo_file | in_file | out_file | rgb_ | (de_bin) | 导出图片奇偶位文件. | |
read_eo | in_file | rgb | (read_mig) | 在窗口中预览图片的奇偶位图像. | ||
[低像素位] | ||||||
en_lsb_file | in_file | info_file | out_file | rgb_ | (en_bin_A) | 在图片像素低位上写入文件. |
de_lsb_file | in_file | out_file | rgb_ | (de_bin_A) | 导出图片像素低位文件. | |
[频域] | ||||||
en_dtf_mask | in_file | info_file | out_file | rgb | (en_dtf) | 在图片DTF频域上写入水印. |
de_dtf_mask | in_file | out_file | rgb | (de_dtf) | 导出图片DTF频域水印. | |
read_dtf | in_file | rgb | 在窗口中预览图片的 DTF频域 图像. | |||
read_dtf_3 | in_file | 在窗口中预览图片的 DTF频域图像,三通道. | ||||
[辅助功能] | ||||||
resize | in_file | out_file | w | h | 重设图像大小(缩放). | |
mirrorX | in_file | out_file | (m_x) | 图片X轴镜像(水平翻转). | ||
mirrorY | in_file | out_file | (m_y) | 图片Y轴镜像(垂直翻转). |
例子
`hinaLayer_v1.0.exe en_dtf_mask "1.png" "mask.png" "[en_dtf]1_out.png" 3
`hinaLayer_v1.0.exe read_dtf "[en_dtf]1_out.png" 3
本项目依赖 openCV 2.4.10 ,构建于 Visual Studio 2013 可参考 这个配置说明
hinaLayer.h 与 hinaLayer.cpp
中封装了对图片所有进行隐写操作的类
hinaLayer_comd.h 与 hinaLayer_comd.cpp
封装了直接调用的方法
hinaLayer_Console.cpp
是编译成 windows 下控制台程序的相关内容
BSD