コマンドラインで画像に見えない透かしを追加するには?

コマンドラインで画像に見えない透かしを追加するには?

同様の質問がここにありますが、テックス-文書。 Imagemagickで透かしの仕方を示します。ここしかし、できるだけ目に見えないようにする方法がわかりません。私は現在、画像自体を歪めずに削除するのが非常に難しいいくつかの機能要素を写真に混同しています。画像に見えない透かしを追加するコマンドラインツールはありますか?例えば、顕微鏡で読むことができます。私は巨大なイメージツリーを持っています(種類が非常に多様であるため、透かしは環境を考慮する必要があります)。各写真に透かしをすばやく目立たないように追加するコマンドラインツールはありますか?

答え1

私はあなたが探しているものが何だと思います。ステガノグラフィ、一見無害に見えるコンテンツの中にメッセージを隠す方法です。

Linuxにはこれを達成するための多くのツールがないようです。推測する1ステッド2あなたが望むことを行います。オープンステゴもう一つのことです(コマンドラインインタフェースを使用)。

たとえば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

ソースイメージ(ソース:タキシード.sv​​g):

一般JPG、透かしなし

質問の隠し画像:

隠し情報を含むファイル

詳しく見ると、画像は異なりますが、2番目の画像は、ほぼより高いJPEG圧縮レベルを使用して作成されました。質問の全文が混在しており、パスワードで保護されているという事実は、視覚的に全く目立たない。
隠された情報が小さいほど、画像の視覚的な違いも小さくなります。 (元のファイルと「Copyright YOU 2012」を含むファイルを視覚的に区別することはできません。)

1は古いですが、よく作られました。 2は最新のC ++コンパイラではビルド
できないため、いくつかのソース修正が必要です。

答え2

合理的に安定した透かしを画像に挿入する方法が必要です。DigiMarkはPhotoshopフィルタ内でこれを行うことができます。しかし、コマンドラインツールではなぜ同じことができないのですか?

これは解決策ではなく、どのように機能するかについてのアイデアです...空白の白い画像に見えない透かしを作成し、生成されたコードを別の画像に混在させると、透かしリーダーが生成された画像から透かしを抽出できます。もう一度画像を変更/切り取ったり、印刷して写真を撮ったりしても同じです。

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

関連情報