как я могу видеть цветовое пространство своего изображения с openCV?
Я хотел бы быть уверенным, что это - RGB, прежде чтобы преобразовать в другой, используя cvCvtColor () функция
спасибо
К сожалению, Opencv не дает никакого показания к цветовому пространству в структуре IPlimage, поэтому, если вы слепо забрать IPlimage откуда-то, что нет, просто не хочу знать, как это был закодирован. Кроме того, никакого алгоритма не может окончательно сказать вам, если изображение должно интерпретировать как HSV против RGB - это все просто куча байтов к машине (должна это - HSV или RGB?). Я рекомендую вам обернуть свои IPlimages в другой структуре (или даже класс C ++ с шаблонами!) Чтобы помочь вам отслеживать эту информацию. Если вы действительно отчаянно, и вы имеете дело только с определенным типом изображений (на улице сцены, офисы, лица и т. Д.) Вы можете попробовать вычислить некоторые статистические данные на ваших изображениях (например, статистика гистограммы для натуральных RGB и некоторые для некоторых изображений Натуральные изображения HSV), а затем попытайтесь классифицировать свое совершенно неизвестное изображение, сравнивая, какое цветное пространство для вашего изображения ближе к.
Структура IplImage имеет поле с именем colorModel
, состоящее из 4 символов. К сожалению, OpenCV игнорирует это поле. Но вы можете использовать это поле для отслеживания различных цветовых моделей.
txandi делает интересный момент. OpenCV имеет цветовое пространство BGR, которое используется по умолчанию. Это похоже на цветовое пространство RGB, за исключением того, что каналы B и R физически переключаются в изображении. Если для вас важен порядок физических каналов, вам нужно будет преобразовать изображение с помощью этой функции: cvCvtColor (defaultBGR, imageRGB, CV_BGR2RGB).