【问题标题】:.png image fail to do binary gray, while .jpg image can.png 图像无法进行二值灰度,而 .jpg 图像可以
【发布时间】:2017-06-24 07:02:08
【问题描述】:

非常简单的代码,我可以从 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 看起来是我倾向于做的。

【问题讨论】:

    标签: python computer-vision png jpeg grayscale


    【解决方案1】:

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

    更多信息请参见http://matplotlib.org/users/image_tutorial.html

    【讨论】:

    • 你说得对,我只是打印出image[0,0,:],png都是[0:1],jpg都是[0:255]。
    猜你喜欢
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 2011-12-25
    • 2016-03-25
    • 2015-12-11
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    相关资源
    最近更新 更多