在使用Python的OpenCV读取图片时,是否可以将其默认读取为RGB顺序?在OpenCV文档中,imread方法返回BGR顺序的图像,但是在代码中imread方法返回RGB顺序的图像?我没有进行任何转换处理。只是使用了imread方法并在屏幕上显示。它在Windows图片查看器上显示。
编辑1: 我的代码如下。左侧是cv.imshow()方法,右侧是plt.imshow()方法。
cv2.imshow()方法显示的图像为RGB格式,而plt.imshow()方法显示的图像为OpenCV读取的(BGR)格式。
image_file = 'image/512-2-1001-18-RGB.jpg'
# img = imp.get_image(image_file)
img = cv2.imread(image_file)
plt.imshow(img)
plt.show()
cv2.imshow('asd', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
编辑2: 不知何故,opencv的imshow方法将图像显示为RGB格式。 下面我附上了图像的第一个像素值和Photoshop像素值的比较。
编辑3: 下面是读取图像、imshow和原始RGB图像。
imshow方法后图像看起来与原始图像相同,这让我感到困惑。
按RGB顺序排列的原始图像。
cv2.imread()
函数,以便读取RGB格式的图像。我认为默认格式仅为BGR。在读取图像后,您始终可以使用cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
将图像转换为RGB格式。 - ZdaRRGB = cv2.imread('image.png')[...,::-1]
。 - Mark Setchelldef get_image(self, filePath): return cv.imread(filePath)
。它会返回 RGB 图像(在屏幕上显示时,看起来就像在 Windows 图像查看器中一样)。 - S. Aziz Kazdal