2017-04-17 23 views
0

は、私は非常に単純な(多分有用ではありません)画像のノイズ除去を構築しようとしていますが、私はこのコードの特定の部分で問題を抱えている:「ValueError:間違った数のlutエントリ」が表示されるのはなぜですか?

ValueError: Wrong number of lut entries 
:それは私に、このエラーを与えている

im=Image.open("Test.jpg") 
width=im.size[0] 
Lim=im.convert("L") 
threshold = 250 
table = [] 
for i in range(width): 
    if i < threshold: 
     table.append(0) 
    else: 
     table.append(1) 
Bim=Lim.point(table, "1") 
Bim.save("BINvalue.bmp","BMP") 

私は何か非常にシンプルなものがありますか?それとも間違っているのですか?私はまだ学生であり、Pythonで多くの経験を積んでいません。

答えて

1

Image.point()メソッドはルックアップテーブルまたはすべてのピクセルを操作する関数を使用します。 ルックアップテーブルは少し複雑かもしれません。したがって、関数を使用することをお勧めします。関数はすべてのピクセルに適用されます。

from PIL import Image 
im=Image.open("Test.jpg") 
width=im.size[0] 
Lim=im.convert("L") 
threshold = 250 
# if pixel value smaller than threshold, return 0 . Otherwise return 1. 
filter_func = lambda x: 0 if x < threhold else 1 
Bim=Lim.point(filer_func, "1") 
Bim.save("BINvalue.bmp","BMP") 
関連する問題