Определите высоту кофе в кастрюле с помощью изображения Python
Это немного забавный вопрос, но...
У нас есть веб-камера на нашей кухонной мини-кухне, ориентированная на нашу кофеварку. Кофейник хорошо виден. Место расположения кофейника и камеры являются статическими. Можно ли подсчитать высоту кофе в кастрюле, используя распознавание изображений? Я видел, как распознавание изображений используется для довольно сложных вещей, таких как распознавание лиц. По сравнению с этими проектами это кажется тривиальной задачей измерения высоты.
(Это мое лучшее предположение, и я не имею представления об основных сложностях.)
Как я могу это сделать? Будет ли это рассматриваться как очень сложная задача? FYI, я никогда не занимался какой-либо работой, связанной с изображениями.
Спасибо
Ответы
Ответ 1
Поскольку положение кофейника неподвижно, получите образец рамки и найдите один столбец пикселей, где минимальное и максимальное количество кофе можно легко увидеть, в месте, где нет отражений. Проверьте зеленый сегмент вертикальной линии на следующем рисунке:
http://imagepaste.nullnetwork.net/img/1278948944coffee_maker.jpg
Самый простой способ - иметь два кадра: один с банком пустым, один с банком полный (очевидно, при тех же условиях освещения, что обычно будет так), конвертировать в оттенки серого (colorsys.rgb_to_hsv
каждый пиксель RGB и сохраняйте только компонент v
(3rd)) и суммируйте яркость всех пикселей в выбранном сегменте линии. Скажем, в случае пустого банка суммарный объем 550 и банкнотный случай составляют 220 (кофе темный). Сравнивая сумму входных кадров с этими двумя суммами, вы можете получить приблизительную оценку процента кофе в банке.
Я бы не поставил свою жизнь на точность этого метода, хотя флуктуации даже со второго на второй могут быть дикими:)
N.B: в моем примере зеленый столбец пикселей должен распространяться на дно горшка; Я просто привел пример того, что я имел в виду.
Ответ 2
Шаги, которые я попробую:
- Преобразовать изображение в grayscale.
- Зарекомендовать изображение и оставить только кофе. Вы можете обнаружить хороший порог вручную с помощью экспериментов.
- извлечение Blob. Область Blob (количество пикселей) является одним из способов вычисления высоты, то есть области/ширины.
Ответ 3
Сначала сделайте пороговое значение, затем сегментирование. Тогда вы можете легче обнаружить ребра.
Ответ 4
Вы ищете обнаружение границ. Но вам нужно только сделать это между коричневым/черным кофе и цветом фона за горшком.
Ответ 5
Существует Библиотека изображений Python, которая может выполнять обнаружение кромок. Но я не пользователь Python:).
Ответ 6
Вы должны включить этот вопрос в школьное задание для ИТ-студента.
Большинство ИТ-школ учат Computer Vision. Задавать вопрос здесь смешно, получить студента и учителя, изучающего предмет, будет весело!
Ответ 7
- сделайте фотографии банка с различными уровнями кофе в нем.
- уменьшите изображение до 4 * 10 пикселей.
- сделать то же самое в цикле для каждого нового живого изображения.
- вычислить разность значений каждого пикселя по сравнению с эталонными изображениями.
- возьмите контрольное изображение с наименьшей разницей, и вы получите состояние своего кофе-машины.
вы можете экспериментировать, если версия в оттенках серого или только красный или зеленый могут дать лучшие результаты.
если он дает проблемы с различными настройками освещения, этот aproach бесполезен. просто купить прожектор для кофе машины, или осветлить или затемнить каждое изображение, пока сумма всех пикселей достигает опорное значение.