コマンドラインで画像に非表示の透かしを追加するにはどうすればよいですか?


12

ここでも同様の質問ですが、Texドキュメントです。Imagemagickはここに透かしを入れる方法を示していますが、可能な限り非表示にする方法は示しいません。私は現在、いくつかの機能要素を写真に難読化しているため、画像自体を歪めることなく、削除するのが非常に困難です。目に見えない透かしを画像に追加するためのコマンドラインツールはありますか。顕微鏡で確認したいのですが、それでも判読できるでしょうか。私は画像の大規模なツリーを持っています(非常に異なるため、透かしはenvなどに採用する必要があります)-すべての写真に透かしを目立たないようにすばやく追加するコマンドラインツールですか?


2
私はあなたの不可視性の要件が透かしの目的と対立していると思います。透かしが通常のビューアに表示されない場合は、JPEGを2、3回変換することで削除できる可能性があります。JPEGは設計上、見落とさないように細部を滑らかにするためです。
カイルジョーンズ

@KyleJones:誰がフォーマットとしてJPEGを必要としましたか?Imagemagickには例のみが含まれています。私の目標は、透かしをTexのドットを変更するように少し隠すことで画像に難読化することです

2
私の要点は、JPEG変換または他の損失の多い画像圧縮アルゴリズムがそのような透かしを削除できることであり、画像が必ずしもJPEGとして開始する必要があるということではありません。
カイルジョーンズ

これには目的がないというコメントは間違っていて、見当違いです。確かに、「非表示の透かし」は矛盾ですが、これは略語の「ステガノグラフィックメッセージ」の便利な省略形です。ほとんどの場合、「速記」(つまり、文字通りの省略形)に自動修正されます。ここでは、ユースケースの背景説明があります:lia.deis.unibo.it/Courses/RetiDiCalcolatori/Progetti98/Fortini/...と1例の実装:howtoforge.com/tutorial/...
マイケル

回答:


9

あなたが探しているのはステガノグラフィです。これは、他の点では無害に見えるコンテンツにメッセージを隠す方法です。

Linuxでは、これを行うためのツールが豊富にあるようには見えませんが、1steghide 2期待どおりの結果をもたらす推測しています。openstegoはもう 1つです(コマンドラインインターフェイスを使用)。

の例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

ソース画像(Tux.svgから):

プレーンJPG、透かしなし

質問が隠された画像:

非表示の情報を含むファイル

よく見ると画像は異なりますが、2番目の画像がより高いJPEG圧縮レベルで生成された場合とほぼ同じです。質問の完全なテキストが混在している(およびパスワードで保護されている)ことは、視覚的にはまったく目立ちません。
非表示のメッセージが小さいほど、画像の視覚的な違いが少なくなります。(「Copyright YOU 2012」が埋め込まれたファイルと元のファイルを視覚的に区別できません。)

1つ古いが、正常にビルドされます。
2は最新のC ++コンパイラーではビルドできません。いくつかのソース修正が必要です。


OpenStegoにはCLIがあります。私はあなたの回答を編集してリンクしました。
awendt 2014

0

非常に安定した透かしを画像に埋め込む方法が必要です。DigiMarkはそれをPhotoshopフィルターなどで行います。それでは、コマンドラインツールも同様にできないのはなぜですか。

これは解決策ではありませんが、それがどのように機能するかを考えています...空白の白い画像に目に見えない透かしを作成し、結果のコードを他の画像にブレンドすると、透かしリーダーは結果の画像から透かしを抽出できます再び-修正/トリミングまたは印刷して再度撮影した場合でも。

したがって、実際には、特定の透かしグラデーションコードをバッチで追加することは問題になりません。透かしを抽出するための適切な署名アルゴリズムとソフトウェアを見つけることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.