如果我用opencv保存读取一个图像,然后再读取一次,这是否会导致图像以RGB顺序加载?

gcuhipw9  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(89)

我很好奇,因为我注意到如果我用opencv保存一个图像,而不重新排序图像回RGB,他们保存在BGR排序。现在我已经打开和重新排序(使用cv2.cvtColor(image, cv2.COLOR_BGR2RGB)),我不确定排序是否正确?因为如果它切换第一个和最后一个通道(R-〉B)并保存为(BGR)比第二次加载时,这将是RGB了吗?
如果这是一个有点愚蠢的问题,我道歉。
提前感谢!
例如

image = cv2.imread(path) #RGB ->BGR
cv2.imwrite(image, path) # saves BGR
image = cv2.imread(path) # what is the ordering of image?
eanckbw9

eanckbw91#

请看下图

让我们试试,如果我们在opencv中一次又一次地加载它,它是否会改变。

im = cv.imread("blue.jpg")
cv.imwrite("blue2.jpg", im)
im = cv.imread("blue2.jpg")
cv.imwrite("blue3.jpg", im)

如果我没理解错你的问题的话,你假设第二张图片blue2.jpg是红色的,至少你在这里是这么说的
我注意到,如果我用opencv保存图像,而不将图像重新排序回RGB,它们将以BGR顺序保存。

结果

blue2.jpg

blue3.jpg

结论

仅阅读和写入图像文件不会改变结果的颜色通道顺序,即imwrite(imread(.))不等于cvtColor(im, cv.BGR2RGB)

相关问题