.png图像无法进行二进制灰色,而.jpg图像可以

时间:2017-02-07 06:17:35

标签: python computer-vision png jpeg grayscale

非常简单的代码,我可以将image1中的图像作为png或image2作为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

不知何故,当我绘制image1的二进制时,它全是黑色的,但是image2看起来我倾向于做什么。 enter image description here

1 个答案:

答案 0 :(得分:3)

问题很可能是由于matplotlib.image成功阅读pngjpg回归使用Pillow。由png读取产生的图像将是一个浮点值数组,范围为0.0到1.0,而jpg读取将是一个值为0..255的字节数组。因此,当所有内容都低于1时,剪辑操作将导致全黑图像。

有关详细信息,请参阅http://matplotlib.org/users/image_tutorial.html