Почему OpenCV использует цветовое пространство BGR вместо RGB
Можно ли объяснить, почему OpenCV
использует цветовое пространство BGR
вместо RGB
. Все мы знаем, что RGB
является удобной цветовой моделью для большей части компьютерной графики, а также зрительная система человека работает так же, как и цветовое пространство RGB
. Есть ли какая-то причина за цветовое пространство OpenCV
BGR
?
Заранее спасибо.......
Ответы
Ответ 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, разница только в их порядке, поэтому вам не нужно беспокоиться о режиме сохранения цветов.