12 imagemagick
类似的问题在这里,但对于Tex -document。Imagemagick在这里展示了加水印的方法,但没有展示如何尽可能地不可见。我目前只是将一些功能元素混淆到照片中,因此很难删除,而不会扭曲图像本身。是否有一些命令行工具可以为图像添加不可见水印,例如用显微镜检查但仍然可读?我有一个巨大的图像树(种类繁多,因此水印应该采用 env 等)——一些命令行工具可以在每张照片上快速无形地添加水印?
Mat*_*Mat 10
我相信您正在寻找的是steganography,一种将消息隐藏在看似无辜的内容中的方法。
似乎没有成为一个丰富的工具,有这个在Linux上,但看透1和steghide 2会做你想要什么。openstego是另一个(带有命令行界面)。
例如outguess
,我将您的问题的文本复制/粘贴到Q.txt
:
$ ../src/outguess/outguess -k 'Unix&Linux' -d Q.txt Tux.jpg Tux_steg.jpg
Reading Tux.jpg....
JPEG compression quality set to 75
Extracting usable bits: 10126 bits
Correctable message size: 5008 bits, 49.46%
Encoded 'Q.txt': 4592 bits, 574 bytes
Finding best embedding...
0: 2274(49.2%)[49.5%], bias 2008(0.88), saved: 2, total: 22.46%
3: 2269(49.1%)[49.4%], bias 2007(0.88), saved: 3, total: 22.41%
13: 2268(49.0%)[49.4%], bias 1977(0.87), saved: 3, total: 22.40%
62: 2237(48.4%)[48.7%], bias 1992(0.89), saved: 7, total: 22.09%
78: 2216(47.9%)[48.3%], bias 1964(0.89), saved: 10, total: 21.88%
78, 4180: Embedding data: 4592 in 10126
Bits embedded: 4624, changed: 2216(47.9%)[48.3%], bias: 1964, tot: 10119, skip: 5495
Foiling statistics: corrections: 1437, failed: 746, offset: 198.494881 +- 300.529142
Total bits changed: 4180 (change 2216 + bias 1964)
Storing bitmap into data...
Writing Tux_steg.jpg....
$ ../src/outguess/outguess -k 'Unix&Linux' -r Tux_steg.jpg out.txt
Reading Tux_steg.jpg....
Extracting usable bits: 10126 bits
Steg retrieve: seed: 78, len: 574
$ diff out.txt Q.txt
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)
源图像(来自Tux.svg):
图像中隐藏着您的问题:
如果您仔细观察,图像会有所不同,但几乎就像是使用更高的 JPEG 压缩级别生成第二张图像一样。您的问题的完整文本混入(并受密码保护)这一事实在视觉上根本不明显。
隐藏的信息越小,图像的视觉差异就越小。(我无法在视觉上区分原始文件和嵌入了“Copyright YOU 2012”的文件。)
1旧,但构建得很好。
2不是用现代 C++ 编译器构建的,一些源代码修复是必要的。