У нас есть веб-камера в нашей офисной мини-кухне, сфокусированной в нашей кофеварке. Кофейник явно видим. И местоположение кофейника и камера статичны. Действительно ли возможно вычислить высоту кофе в горшке с помощью распознавания изображений? Я видел распознавание изображений, используемое для довольно сложного материала как распознавание лиц. По сравнению с теми проектами это, кажется, тривиальная задача измерения высоты.
(Это - мое лучшее предположение, и я понятия не имею о базовых сложностях.)
Как я пошел бы об этом? Это считали бы очень сложным заданием для участия? К вашему сведению я никогда не делал никакого вида связанной с обработкой изображений работы.
Вы должны превратить этот вопрос в школьное задание для студента ИТ-школы. В большинстве IT-школ преподают Компьютерное зрение. Задавать вопрос здесь смешно, а получить студента и преподавателя, исследующих эту тему, было бы просто уморительно!
Существует Библиотека изображений Python , которая может определять края. Но я не пользователь Python :).
Поскольку положение кофейника неподвижно, возьмите образец кадра и найдите одиночный столбец пикселей, где легко увидеть минимальное и максимальное количество кофе, в месте, где нет отражений. Проверьте сегмент зеленой вертикальной линии на следующей картинке:
(источник: nullnetwork.net)
Самый простой способ - получить два кадра, один с пустым кофейником, другой с полным (очевидно, при одинаковых условиях освещения, что обычно и происходит), преобразовать в градации серого (colorsys. rgb_to_hsv
каждый пиксель RGB и сохраняем только v
(3-й) компонент) и суммируем светимость всех пикселей в выбранном сегменте линии. Допустим, в случае пустого кофейника сумма составит 550, а в случае полного кофейника - 220 (кофе темный). Сравнивая сумму входного кадра с этими двумя суммами, можно получить приблизительную оценку процентного содержания кофе в кофейнике.
Я бы не стал ставить свою жизнь на точность этого метода, однако, и колебания даже от секунды к секунде могут быть дикими :)
N.B: в моем примере зеленый столбец пикселей должен простираться до дна кофейника; я просто привел пример того, что я имел в виду.
Шаги, которые я бы попробовал:
Сначала выполните пороговую обработку, затем сегментацию. Тогда вам будет легче обнаруживать края.
Вы ищете обнаружение края . Но вам нужно только сделать это между коричневым / черным кофе и цветом фона за горшком.
вы можете поэкспериментировать, может ли версия в градациях серого или только красного или зеленого дать лучшие результаты.
если это дает проблемы с различными настройками освещения, этот подход бесполезен. просто купите прожектор для кофемашины, или осветлите, или затемните каждое изображение, пока сумма всех пикселей не достигнет эталонного значения.