BGR和RGB不是颜色空间,它们只是不同颜色通道顺序的约定。cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
不执行任何计算(例如说HSV的转换),它只是在顺序之间切换。任何排序都是有效的- 实际上,三个值(红色,绿色和蓝色)堆叠形成一个像素。您可以按照自己喜欢的方式安排它们,只要您告诉显示器您给了它什么顺序即可。
OpenCV的imread
,imwrite
并且imshow
实际上所有与BGR秩序工作,所以没有必要当你阅读的图像改变顺序cv2.imread
,然后想表现出来cv2.imshow
。
尽管在整个OpenCV中始终使用BGR,但大多数其他图像处理库都使用RGB排序。如果您想使用matplotlib
,imshow
但要使用OpenCV读取图像,则需要将BGR转换为RGB。