为什么OpenCV是BGR格式,而不是常见的RGB

正文

penCV采用BGR(蓝绿红)而不是RGB(红绿蓝)来解析图像数据,因为在历史上,BGR是Windows位图文件的默认颜色顺序,而位图文件是OpenCV最早支持的文件格式之一。

当OpenCV在1990年代末首次开发时,Windows是一种主流操作系统,位图文件是计算机图形中常用的图像格式。因此,OpenCV的开发者选择使用BGR作为默认的颜色顺序,以保持与该文件格式的一致性。

虽然对一些程序员来说,使用BGR可能不直观,但它已成为计算机视觉领域的一种约定,并广泛用于许多图像处理库,包括OpenCV。

虽然OpenCV使用BGR作为默认的颜色顺序,但可以使用OpenCV的函数将图像转换为RGB。例如,cv2.cvtColor()函数可以用于将图像从BGR转换为RGB或反之亦然。

总之,OpenCV采用BGR来解释图像数据,是因为在历史上,它是Windows位图文件的默认颜色顺序,为了实现自身的向下兼容,所以一贯保持了自己的BGR,但是现代的很多图像处理库已经开始拥抱RGB了。所以我们一般需要注意使用OpenCV的时候需要转一下颜色。

  • 参考资料2类比了一个美国火车轨道为什么是4英尺8.5英寸(4 feet 8.5 inches,通常简写为4’8.5"。这个尺寸也被称为"标准轨"(Standard Gauge))的故事,讲得很有意思,可以去看看原文。总之,这种奇怪的问题,一般问起来就是历史原因。

参考资料

  • https://www.quora.com/Why-does-OpenCV-interpret-image-data-using-BGR-instead-of-RGB
  • https://learnopencv.com/why-does-opencv-use-bgr-color-format/

猜你喜欢

转载自blog.csdn.net/crazyjinks/article/details/130628437