Детекция светодиодов на изображении
Только знакомлюсь с OpenCV, нужно реализовать программу по вычислению координат на изображении светодиодов (рисунки ниже). Как можно сделать это наиболее эффективно? Проблема ещё в том, что на фоне могут присутствовать посторонние объекты, а так же светодиоды на изображении не всегда имеют строго синий цвет (может варьироваться от очень светлых до темных).
Ответы (1 шт):
Автор решения: Dima Cima
→ Ссылка
Mat pic; // твоё изображение
Mat mask; // то что получиться
img = imread("Svetodiod.jpg");
cvtColor (pic, pic, COLOR_BGR2HSV); //конвертация цветов в HSV не обязательно
Scalar min(minH, minS, minV); // Минимальные данные твоего цвета
Scalar max(maxH, maxS, maxV); // Максимальные данные твоего искомого цвета
inRange(pic, min, max, mask); //собственно сама функция поиска.
//на картинке pic ищет цвета между min и max и потом выведет их в mask
на Scalar прикручивай ползунки, подбирай цвет.
а дальше на mask ищи обьекты, там по разному. например переведи в контуры с помощью findContours() и найди их центры тяжести или момент.
или boundingRect() вернет тебе квадрат, окружающий эти контуры (с mask)



