cvInrangeS
функция проверяет, что элементы массива лежат между двумя скалярами.
Первое значение cvScalar обозначает инклюзивную нижнюю границу. Второе значение cvScalar обозначает исключительную верхнюю границу.
cvInrangeS не заботится о значениях, которые вы указываете как RGB или BGR или HSV и т. Д. Он просто просматривает элементы массива, которые вы указываете в качестве входных данных (первый параметр) (здесь это изображение) и проверяет, находятся ли элементы в заданный диапазон, который вы указали. Если это так, оно выбрано, в противном случае отклонено. И результат подачи к последнему параметру, вашему выходному изображению.
проверить его documentation
Теперь здесь, если вы даете HSV изображение. Таким образом, cvScalar обозначает самый низкий и самый высокий цвет диапазона, который вы хотите извлечь.
Если это изображение RGB, вы указываете минимальные и максимальные цвета RGB.
И лучше использовать HSV, потому что он обеспечивает хороший результат. Read here.
А теперь, если вы хотите конвертировать RGB в значения HSV, попробуйте here и here.
(Помните, что в OpenCV красный и синий взаимозаменяемыми. Это BGR, а не RGB).
[Эта страница] (http://tech.groups.yahoo.com/group/OpenCV/message/76742) выглядит так, как будто она имеет хорошее описание. Похоже, что первый скаляр - это значения min hsv, а второй - максимальные значения hsv. Он проверяет, находятся ли все значения между min и max. – user1118321
Знаете ли вы, к чему относятся h, s и v. Например, я обычно скажу, что для rgb значения не равны 255. Для HSv это кажется другим. im не уверен, что использует opencv –
Обычно оттенок находится в диапазоне от 0 до 360 градусов, хотя иногда он представляется как от 0 до 255, чтобы он соответствовал 8 бит. Насыщенность и значение, как правило, от 0 до 100, но могут быть растянуты до 0 до 255, чтобы использовать полный 8-разрядный диапазон. Поэтому я предполагаю, что я говорю, вам нужно будет прочитать документацию о том, что вы использовали для преобразования в HSV. – user1118321