【发布时间】:2021-04-14 19:16:50
【问题描述】:
我正在尝试编写一个简单的代码来加载图像,将每个像素的值除以 2 并存储图像。图像存储在数组 [1280][720][3] 中。在更改每个像素的值后,我检查了这些值是否符合预期。由于某种原因,这些值是正确的,但是当我存储新图像并检查它时,像素的值与以前不同...... 图像为 1280x720 像素,每个像素有 3 个字节(每种颜色 rgb 一个)
import matplotlib.image as mpimg
img = mpimg.imread('image.jpg') # (1280, 720, 3)
myImg = []
for row in img:
myRow = []
for pixel in row:
myPixel = []
for color in pixel:
myPixel.append(color // 2)
myRow.append(myPixel)
myImg.append(myRow)
mpimg.imsave("foo.jpg", myImg)
【问题讨论】:
-
您必须记住 JPEG 是一种有损格式,当您保存它时,压缩算法可能会稍微改变值。如果文件中的结果与您保存的值大致相同,则您的代码按预期工作。如果您需要设置的确切值,请使用无损图像格式。
标签: python python-3.x image matplotlib save