3

撮影した文書の画像をスキャンして見たいと思っています。スキャナはドキュメント全体に一定の光源を置くので、ドキュメントの写真にその効果をもたらしたいと思います。望む効果は、光が弱い(または少なくとも目立たないように)影や領域を取り除き、写真全体をかなり明るくすることです。画像を一様に明るくする方法(Python/PILを使用)

私の最初の考えは、ターゲット画像の最も明るい部分を見つけ、全体の画像を明るさにすることです。それが正しいアルゴリズムであったとしても、どうすればPILでそれをやることができますか?明るさの取得方法はありますか?等?

(これはthis earlier questionのフォローアップである。)

+0

あなたのサンプル画像を追加できますか? – mmgp

答えて

2

は最初の試みとして、画像を閾値てみてください。暗い部分は黒くなり、明るい部分は白くなります。私はPILを使用していませんが、簡単な方法があると思います。

2

ImageChops.screen(image1、image2)を2枚の画像で試してみてください。満足できない場合は、ImageChopsモジュールの他の機能を試してみてください。

また、グレースケールに変換することもできます。ImageOps.grayscale(image)。

0

まず、GIMPのような画像編集プログラムで手動で試してみてください。あなたが探しているのは明るさとコントラストを調整することだと思います。

+0

いいえ、暗い領域は既に明るい領域よりも明るくなるはずです。 – Greg

0

どのような画像ですか?テキストページのように理想的に純粋な白黒でなければならない場合、未処理のデータは多分黒ではない文字のレベルが異なるグレースケールの勾配のようなものでしょう。定数に対する閾値処理は良好な結果をもたらすかもしれないが、照明があまりにも不均一である場合、またはレンズのぎらつきが干渉しない場合はない。イメージをスムージングされたバージョンと比較します。 PIL_usm.gblur(image、radius)を使用してスムージングします。半径(ピクセル単位)は、文字の要素の幅に匹敵する10,25またはいくつかの値のようなものです。ただ、説明のために、古いノートからクイックhackcode:

import Image 
import PIL_usm 
# see http://www.cazabon.com/pyCMS/PIL_usm.html for PIL_usm 

img = Image.open(...) 
sm = PIL_usm(img, 10) 
thr = Image.ImageChops.subtract(img,sm, .001, 128) 
# or whatever works 4u... 

大藤これらの文書は、写真や他の非バイレベルのグラフィックスを持っている場合、あなたはもっと賢いする必要があります。

+0

興味深い提案---試してみましたか? –

関連する問題