当前位置: 首页 > 面试题库 >

为什么PIL的Image.fromarray()会使我的图像颜色失真?[重复]

裴宏壮
2023-03-14
问题内容

这个问题已经在这里有了答案

OpenCV在加载时为彩色图像提供错误的颜色 (2个答案)

6个月前关闭。

我正在使用以下代码为mp4视频生成缩略图:

import cv2 as cv
from PIL import Image

vidcap = cv.VideoCapture(videoPath)
vidcap.set(cv.CAP_PROP_POS_MSEC, millisecond)

#Turn video frame into numpy ndarray
success, image = vidcap.read()
cv.imwrite('fromImage.jpg', image)   #line to be replaced

从高预算,专业拍摄的视频生成的缩略图如下所示:
在此处输入图片说明
不幸的是,在我的应用程序上下文中,我将无法直接将图像帧写入文件。相反,我必须将cv生成的图像数组转换为PIL图像,然后从那里开始。看起来像这样:

# Turn numpy ndarray int PIL image
img = Image.fromarray(image)
img.save('fromArray.jpg')    #Saving it for stackoverflow

但是从同一个mp4视频输出的缩略图已完全失真,因为它似乎已变成红色和蓝色,看起来像这样:
图像失真的罪魁祸首是谁?在此处输入图片说明


问题答案:

https://note.nkmk.me/zh-CN/python-opencv-bgr-rgb-
cvtcolor/

imageRGB = cv.cvtColor(image, cv.COLOR_BGR2RGB)

img = Image.fromarray(imageRGB)

img.save('fromArray.jpg')


 类似资料:
  • 问题内容: 我有一幅颜色为BGR的图像。如何转换我的PIL图像,以有效地交换每个像素的B和R元素? 问题答案: 假设没有阿尔法谱带,难道就这么简单吗? 编辑: 嗯…似乎PIL在这方面有一些错误…似乎不适用于最新版本的PIL(1.1.7)。它可能(?)仍可与1.1.6一起使用,但是…

  • 本文向大家介绍使用PIL(Python-Imaging)反转图像的颜色方法,包括了使用PIL(Python-Imaging)反转图像的颜色方法的使用技巧和注意事项,需要的朋友参考一下 利用PIL将图片转换为黑色与白色反转的图片,下面笔者小白介绍如何实现。 解决方案一: 注意:“ImageOps模块包含多个'ready-made'图像处理操作,该模块有些实验性,大多数操作符只适用于L和RGB图像。”

  • 问题内容: 我需要将在黑色背景字母上绘制为白色的一系列图像转换为白色和黑色反转(为负)的图像。如何使用PIL实现此目的? 问题答案: 请尝试以下文档中的内容:http : //effbot.org/imagingbook/imageops.htm 注意:“ ImageOps模块包含许多“现成的”图像处理操作。该模块有些实验性,大多数操作员只能处理L和RGB图像。

  • 问题内容: 我需要在python中更改图像的像素颜色。除了像素值(255,0,0)红色外,我需要将每个像素颜色值更改为黑色(0,0,0)。我尝试了以下代码,但没有帮助。 问题答案: 参见此Wikibook:https : //zh.wikibooks.org/wiki/Python_Imaging_Library/Editing_Pixels 修改该代码以适合您的问题:

  • 问题内容: 我制作了许多这样的补丁- 最初我只是将它们像这样直接放在我的轴上- 很好。但是现在我想将它们放入PatchCollection中并将该PatchCollection放到轴上。但是,当我这样做时,我所有的形状都是蓝色。我不明白,只是放入一个收藏集会如何以某种方式改变颜色。有人可以帮我解决需要做哪些工作,以保持输入的色值作为色块的faceColor吗? 新代码是- 问题答案: 默认情况下,

  • 我试图在我的网站上创建一个画廊,我把它们都设置为盘旋时增加大小。唯一的问题是,即使它们的尺寸增加,它们旁边的图像也会显示在增加的图像之上。 以下是HTML: 这是我的剧本: 这是我的CSS: 我试图增加和减少z指数,认为这会有所帮助。但没有这样的运气。 ****编辑****我解决了这个问题。把这个问题留给未来的人去看。在javascript中,我必须将div设置为更改z索引,而不是图片本身。解决方