web-dev-qa-db-ja.com

画像の透かしの背景を削除する方法Python

以下のような画像がありますが、

enter image description here

背景の透かしを削除したいです。

これまでのところ、inpaintingopencvメソッドを試しました。それは私を助けませんでした。

私は次のスクリプトを試しました:

edges = cv2.Canny(img,50,150,apertureSize = 3)
dst = cv2.inpaint(img,edges,3,cv2.INPAINT_TELEA)

画像処理とopencvは初めてです。だから、私は正しい方法でやっているのかどうかはわかりません。背景の透かしを削除するにはどのような方法が必要ですか。

緑の引用符で囲まれた透かしを画像から削除したいです。

enter image description here

どんな助けもよりわかりやすいでしょう。

13

ここのテキストは、透かしとは異なる強度を持っています。単純な明るさ/コントラストの変換、つまり、透かしが消えるまでゲイン/コントラストを上げ、明るさを減らして補正することで、いろいろ試してみることができます。

簡単なチュートリアルについては、 OpenCV docs をご覧ください。

Pythonでの簡単な試みです。実際にOpenCVを使用しないのは、このような単純な線形変換にIMHOが必要ないためです。必要な結果が得られるまで、alpha(コントラスト)およびbeta(明るさ)パラメーターをいじりましょう

import cv2
import numpy as np

img = cv2.imread("veidz.jpg")

alpha = 2.0
beta = -160

new = alpha * img + beta
new = np.clip(new, 0, 255).astype(np.uint8)

cv2.imwrite("cleaned.png", new)

removed watermark

20
filippo