19
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

簡単な透かしを除去できるソフトを作りました

Last updated at Posted at 2016-02-19

概要

 タイトルの通りです。**「適当な単一色の画像を同じアルファ値でアルファブレンドしただけだと容易に突破される」**ということを警告するために作りました。
 言うまでもありませんが、悪用厳禁でお願いいたします。

動作原理

 アルファブレンドは、元の色を$X$、重ねあわせるマスクの色を$Y$、マスクを重ねた結果を$Z$、アルファ値(1で不透過)を$A$とした際、$Z=(1-A)X+AY$といった式で表されます。ここで、未知の変数は$A$と$Y$ですので、$[X,Z]$の組を2つ用意すれば逆算できてしまいます。また、これを利用すれば、$[A,Y,Z]$から$X$を算出することも可能です。後は……お分かりですね?

実装

 とりあえずJavaで書きました。理由はこの記事と同じく、「画像もGUIもイケるしHSPで書かなくてもいいから」といった感じです。

結果

 プロ生ちゃんをサンプルにしたところこんな感じ。もちろん推定に失敗することも多いので、上手くサンプルとなる色の組を考えるのがコツかと(あまり画素値が0や255に近いと推定しづらい)。
元画像
sample.png
マスク位置
mask.png
処理成功例
output.png
処理失敗例
output2.png

配布先URL

19
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?