我有一个图像,其中的颜色是BGR。如何将PIL图像转换为有效地交换每个像素的B和R元素?
发布于 2011-01-12 03:18:14
假设没有alpha带,不是就这么简单吗?
b, g, r = im.split()
im = Image.merge("RGB", (r, g, b))编辑:
嗯..。似乎PIL在这方面有一些bug...im.split()似乎不适用于最新版本的PIL (1.1.7)。它可能(?)不过,仍然可以使用1.1.6。
发布于 2016-09-01 19:37:26
我知道这是一个古老的问题,但我也有同样的问题,并用以下方法解决了它:
img = img[:,:,::-1]发布于 2012-03-10 05:19:57
只是添加一个更新的答案:
有了新的cv2界面,图像现在可以自动加载到numpy数组中。
但是openCV cv2.imread()将图像加载为BGR,而numpy.imread()将它们加载为RGB。
最简单的转换方法是使用openCV cvtColor。
import cv2
srcBGR = cv2.imread("sample.png")
destRGB = cv2.cvtColor(srcBGR, cv2.COLOR_BGR2RGB)https://stackoverflow.com/questions/4661557
复制相似问题