使用imwrite函数后图像像素值变化的问题

3 投票
1 回答
1191 浏览
提问于 2025-04-18 04:23
import cv2
import numpy as np
im=cv2.imread('test.jpg')
cv2.imwrite('result.jpg',im)

这里的test.jpg文件大小是19 KB,而result.jpg文件大小是41 KB,尽管它们是同一张图片。

我注意到这两张图片的像素值发生了变化。

怎么才能避免这种情况呢?

1 个回答

2

在任何库或工具中,重新写入或“保存”一张图片时,都会生成一个新文件或“新的像素值”。这是因为在保存图片时,系统会根据一定的质量进行处理。保存的图片质量和大小取决于执行保存操作的库。因此,需要提供一些默认值、深度、压缩等参数。

如果你只是想在新文件中创建一张图片的副本,可以直接通过 sys 复制文件,或者以二进制方式读取整个文件,然后写入一个新文件——这样就不需要使用任何图片处理库了。

撰写回答