Я всегда использую функцию InRange для обнаружения цветового объекта в цветовом пространстве HSV. Теперь мне нужно обнаружить желтый свет в человеко-машинном интерфейсе plc.
inRange(src, Scalar(10, 45, 150), Scalar(30, 255, 255), dst);
когда фон интерфейса белый, все хорошо, и я могу найти желтые объекты.
Если я изменю цвет на более глубокий, например желтый, цвета в смещении камеры и желтом InRange не будут обнаружены.
введите описание изображения здесь
и на зеленом фоне. Вы можете видеть, что все 3 цвета света идут проводным способом.
Сначала я думаю, что это проблема баланса белого. после выполнения некоторого алгоритма баланса белого смещение цвета становится более серьезным.
Я также пытаюсь отключить встроенную функцию баланса белого камеры, но немного помогаю.
Как мне исправить зеленый, красный и желтый цвета огней, чтобы я мог правильно их обнаружить?