Я использую OpenCV и Python для разработки программного обеспечения, которое может найти целевой шаблон в изображении. В настоящее время я работаю над поиском желаемых целей, и часть этого процесса запускает операцию порога HSV, чтобы изолировать цвет моей цели. Код пороговой HSV выглядит следующим образом:Что должно получиться в случае успешного завершения порога HSV в OpenCV?
out = cv2.cvtColor(input, cv2.COLOR_RGB2HSV)
return cv2.inRange(out, (hue[0], sat[0], val[0]), (hue[1], sat[1], val[1]))
Массивы hue[]
, sat[]
и val[]
определены в другом месте в коде, и содержат экспериментально проверенные значения для диапазона HSV я ищу. Я добавил заявление печати для вывода результата после запуска этого метода. Когда я запускаю этот метод на моих кадрах камеры, он это возвращение:
[[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]]
Я попытался с помощью другого стокового изображения воздушных шаров, который содержит множество различных цветов, и он возвращается тем же самое. У меня возникли проблемы с поиском документации о том, как должен возвращаться метод HSV при правильной работе, поэтому я не совсем уверен, как отлаживать это.
Кто-нибудь знает, какие типы вывода я должен видеть, если все работает правильно и/или есть примеры?
cv2.inRange() возвращает бинарное изображение, которое представляет собой массив пикселей, а не одно значение. Следовательно, все 0 соответствуют черным пикселам на вашем изображении после вашего порога. Попробуйте просмотреть изображения с помощью imshow. Кроме того, как бы вы определили «правильную работу»? Пожалуйста, поделитесь некоторыми изображениями, чтобы проиллюстрировать ожидаемый результат. –
FYI обязательно проверьте [Показатели преобразования цвета OpenCV] (http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor), очень важно, когда порог вручную! –
Пожалуйста, укажите out.dtype, нижний и верхний пределы для оттенков, сит и val. –