在 python 中使用 matplotlib 保存图像
Posted
技术标签:
【中文标题】在 python 中使用 matplotlib 保存图像【英文标题】:saving image using matplotlib in python 【发布时间】: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 是一种有损格式,当您保存它时,压缩算法可能会稍微改变值。如果文件中的结果与您保存的值大致相同,则您的代码按预期工作。如果您需要设置的确切值,请使用无损图像格式。 【参考方案1】:img
是一个 numpy 数组,所以你可以使用 img / 2
。它也比使用列表循环快得多。
myImg = img / 2
mpimg.imsave("foo.jpg", myImg)
【讨论】:
以上是关于在 python 中使用 matplotlib 保存图像的主要内容,如果未能解决你的问题,请参考以下文章
python使用matplotlib可视化线图(line plot)使用arrow函数在matplotlib可视化图像中添加箭头(drawing arrows in matplotlib)