不损失使用 cv2.imwrite() 保存的图片的质量

1 python opencv colors python-2.x

我很想知道cv2.imwrite()OpenCV的功能效果。

我注意到,当我cv2.imread()使用功能读取图片并再次保存它们时cv2.imwrite(),对于人眼来说,它们的质量不再相同。

请问如何使用cv2.imwrite()函数保存图像后保持图像质量与原始图像相同。

我问这个问题是因为我在一个较大的程序中确实遇到了严重的问题,当我检查此函数保存的图片的质量时,我猜我的问题肯定来自此函数。

例如,我使用鼠标移动在图片上绘制红色小方块(红色=255)。当我保存图片并计算红色等于 255 的像素数时,即使我用纯红色绘制了很多像素,我也只能得到很少的像素。但是当我用眼睛检查图像时,我注意到我绘制的红色像素没有正确保存为我选择的正确红色(255)。

有人知道如何解决这个问题吗?我的意思是使用 OpenCV 保存图片而不降低其质量。

Ant*_*ala 6

JPEG 是一种有损格式,您需要将图像保存为 PNG,因为它是一种无损格式。

  • 尝试将 jpeg 转换为 png,但它仍然遭受了严重的颜色损失,就好像在其上添加了一层消除了所有亮度。如果有兴趣的话,这里有2个可以比较。https://storage.googleapis.com/p_temp/1491389137.74.5713443883363%281%29.jpg 和 https://storage.googleapis.com/p_temp/1.png (2认同)