hinaLayer icon indicating copy to clipboard operation
hinaLayer copied to clipboard

simple image steganography tool with C++ & openCV

hinaLayer

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 频域,并写入水印图片
 DTF 频域写入水印图片

隐写文件
在图片中写入或导出文件,使用的是图片像素低位,与此不同的是会记录原文件大小与文件名

hinaLayer.exe

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 下控制台程序的相关内容

License

BSD