2017-02-07 16 views
0

です。非常に簡単なコードで、image1の画像をpngまたはimage2のjpgから読み取ることができます。異なる形式の同じ画像。.png画像はバイナリグレーではありませんが、.jpg画像は

次に、暗い部分を黒にフィルター処理し、明るい部分を白色に表示します。

#image = mpimg.imread('image1.png') 
image = mpimg.imread('image2.jpg') 
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) 
thresh = (180, 255) 
binary = np.zeros_like(gray) 
binary[(gray > thresh[0]) & (gray <= thresh[1])] = 1 

どういうわけか、私はイメージ1のバイナリをプロットするとき、それはすべて黒ですが、画像2は私がする傾向があるものを探します。 enter image description here

答えて

3

問題はjpgが戻っPillowの使用に落ちるpngながら、首尾よく読んによるmatplotlib.imageに最も可能性が高いです。 pngの読み取り結果の画像は、0.0〜1.0の範囲の浮動小数点値の配列になりますが、jpgの読み取り値は0..255のバイト配列になります。その結果、クリップ操作ではすべてが1未満であるため、すべての黒い画像が表示されます。

詳細については、http://matplotlib.org/users/image_tutorial.htmlを参照してください。

+1

あなたは正しいです、私はイメージ[0,0、:]を印刷します、pngはすべて[0:1]、jpgはすべて[0:255]です。 – Patrick

関連する問題