Haris
Haris

Reputation: 14053

Why OpenCV Using BGR Colour Space Instead of RGB

Why OpenCV using BGR colour space instead of RGB. We all know that RGB is the convenient colour model for most of the computer graphics. Is there any reason behind OpenCV BGR colour space?.

Upvotes: 84

Views: 51252

Answers (3)

Daniel Rodrigues
Daniel Rodrigues

Reputation: 1032

As Satya Mallick, CEO, OpenCV, blogged in 2015:

"The reason why the early developers at OpenCV chose BGR color format is probably that back then BGR color format was popular among camera manufacturers and software providers. E.g. in Windows, when specifying color value using COLORREF they use the BGR format 0x00bbggrr."

"BGR was a choice made for historical reasons and now we have to live with it. In other words, BGR is the horse’s ass in OpenCV."

Upvotes: 99

nealmcb
nealmcb

Reputation: 13461

Why? For historical reasons. In 1987, Microsoft Windows ran on the IBM PS/2, and an early IBM video display controller, VGA, made use of the INMOS 171/176 RAMDAC chip, which was easier to use when images were stored in BGR format.

See details at Why BGR color order - Retrocomputing Stack Exchange

Upvotes: 7

user3221935
user3221935

Reputation: 194

OpenCV reads in images in BGR format (instead of RGB) because when OpenCV was first being developed, BGR color format was popular among camera manufacturers and image software providers. The red channel was considered one of the least important color channels, so was listed last, and many bitmaps use BGR format for image storage. However, now the standard has changed and most image software and cameras use RGB format, which is why, in programs, it's good practice to initially convert BGR images to RGB before analyzing or manipulating any images.

Upvotes: 15

Related Questions