2012-01-31 2 views
2
cvInRangeS(imgHSV, cvScalar(15, 234, 120), cvScalar(21, 234, 120), imgThreshed); 

Мне интересно, что представляет собой каждый параметр в функции cvScalar. Я думал, что это будет HSV, но, похоже, это не порог желаемого цвета. Может ли кто-нибудь объяснить параметры немного яснее?Цветовое пространство HSV и функция CvInRangeS

+0

[Эта страница] (http://tech.groups.yahoo.com/group/OpenCV/message/76742) выглядит так, как будто она имеет хорошее описание. Похоже, что первый скаляр - это значения min hsv, а второй - максимальные значения hsv. Он проверяет, находятся ли все значения между min и max. – user1118321

+0

Знаете ли вы, к чему относятся h, s и v. Например, я обычно скажу, что для rgb значения не равны 255. Для HSv это кажется другим. im не уверен, что использует opencv –

+1

Обычно оттенок находится в диапазоне от 0 до 360 градусов, хотя иногда он представляется как от 0 до 255, чтобы он соответствовал 8 бит. Насыщенность и значение, как правило, от 0 до 100, но могут быть растянуты до 0 до 255, чтобы использовать полный 8-разрядный диапазон. Поэтому я предполагаю, что я говорю, вам нужно будет прочитать документацию о том, что вы использовали для преобразования в HSV. – user1118321

ответ

4

Это означает

H - Hue, S - насыщенность, V - Значение

посмотрите здесь для понимания каждого из тех, кто:

http://en.wikipedia.org/wiki/HSL_and_HSV

цвет в основном определенный в компоненте Hue. Существует хороший учебник о пороговом в HSV пространстве здесь:

http://aishack.in/tutorials/thresholding/

10

cvInrangeS функция проверяет, что элементы массива лежат между двумя скалярами.

Первое значение cvScalar обозначает инклюзивную нижнюю границу. Второе значение cvScalar обозначает исключительную верхнюю границу.

cvInrangeS не заботится о значениях, которые вы указываете как RGB или BGR или HSV и т. Д. Он просто просматривает элементы массива, которые вы указываете в качестве входных данных (первый параметр) (здесь это изображение) и проверяет, находятся ли элементы в заданный диапазон, который вы указали. Если это так, оно выбрано, в противном случае отклонено. И результат подачи к последнему параметру, вашему выходному изображению.

проверить его documentation

Теперь здесь, если вы даете HSV изображение. Таким образом, cvScalar обозначает самый низкий и самый высокий цвет диапазона, который вы хотите извлечь.

Если это изображение RGB, вы указываете минимальные и максимальные цвета RGB.

И лучше использовать HSV, потому что он обеспечивает хороший результат. Read here.

А теперь, если вы хотите конвертировать RGB в значения HSV, попробуйте here и here.

(Помните, что в OpenCV красный и синий взаимозаменяемыми. Это BGR, а не RGB).

+0

Обновлена ​​мертвая ссылка здесь. –