Подтвердить что ты не робот

Почему OpenCV использует цветовое пространство BGR вместо RGB

Можно ли объяснить, почему OpenCV использует цветовое пространство BGR вместо RGB. Все мы знаем, что RGB является удобной цветовой моделью для большей части компьютерной графики, а также зрительная система человека работает так же, как и цветовое пространство RGB. Есть ли какая-то причина за цветовое пространство OpenCV BGR?

Заранее спасибо.......

4b9b3361

Ответ 1

"Причина того, что ранние разработчики OpenCV выбрали цветной формат BGR, вероятно, тогда цветной формат BGR был популярен среди производителей камер и поставщиков программного обеспечения. Например, в Windows при указании значения цвета с использованием COLORREF они используют формат BGR 0x00bbggrr.

BGR был выбор, сделанный по историческим причинам, и теперь мы должны жить с ним. Другими словами, BGR - это задница лошади в OpenCV.

Ответ 2

Как упоминалось в docs:

Для многоканальных изображений столбцы содержат столько подкадров, сколько количество каналов. Например, в случае системы цвета RGB:

enter image description here

Обратите внимание, что порядок каналов обратный: BGR вместо RGB. Поскольку во многих случаях память достаточно велика, чтобы хранить строки последовательно, строки могут следовать один за другим, создавая одну длинную строку. Поскольку все находится в одном месте после одного за другим, это может помочь ускорить процесс сканирования. Мы можем использовать функцию isContinuous(), чтобы задать матрицу, если это так. Перейдите к следующему разделу, чтобы найти пример.

Как вы знаете, RGB означает Red Green Blue, и это основные цвета (светлые цвета), поэтому при сочетании этих цветов мы можем производить любой цвет. BGR - это то же самое, что и RGB, разница только в их порядке, поэтому вам не нужно беспокоиться о режиме сохранения цветов.