【发布时间】:2017-10-16 22:52:26
【问题描述】:
有问题的图片:http://cdn1.ouchpress.com/media/celebrities/539/kate-upton-401846.jpg
我正在尝试使用以下命令将图像转换为灰度
img = cv2.imread('kate.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imwrite('kategray.jpg',img)
但是灰度图像的大小为 700kB,而彩色图像只有 500kB。
我错过了什么?因为颜色信息被移除了,alpha通道也被移除了。
图片不应该小一点吗?
【问题讨论】:
-
.jpg 上的 Alpha 通道?我错过了什么吗?关于重量增加:颜色信息可能不是唯一被删除的东西,所以可能是源图像中的很多优化(运行长度编码,调色板,......)。不过,这只是我的猜测。
-
我猜我的频道信息有误。那么只有 png 有 alpha 通道吗?无论哪种方式。仍然困惑为什么去除颜色会增加磁盘上图像的大小
-
png 有,jpeg 没有。我觉得gif也有,但是只有256色,所以我没用过……
-
JPEG 是一种使用(有损)压缩的图像格式。不同的参数会导致不同的图像尺寸。
-
详细说明,
imwrite的 default quality setting 是 95。源图像似乎已以大约 85 的质量保存(以获得该大小)。您需要比较使用相同设置生成的图像,以便比较有意义。还要记住,JPEG 内部不使用 RGB。
标签: python image python-3.x opencv image-processing