Комментарии 5
А почему у вас начиная с определенного шага размер картинки изменяется, т.е. по факту анализируется только часть картинки? Ну и из-за разных размеров, при наложение контуров на кадр, контуры не соответствуют объектам в кадре.
В приведенном примере производится обработка видео разрешением 1920x1080. Все три промежуточных изображения (im_src, fg_mask, filtered) имеют то же разрешение. Подскажите, пожалуйста, в какой части кода встречается resize?
Ну, если нумеровать картинки по порядку, то неужели вы сами не видите, что картинка №5 является увеличенной областью(верхняя левая часть) картинки №4? Например большая горизонтальная структура на этих картинках имеет разный размер. Такое могло произойти либо при использовании части картинки №4 (что я и предположил), либо при увеличении масштаба на картинке (с увеличением размера в пикселях) и последующем обрезании до старого размера (возможный вариант, раз вы утверждаете, что размер в пикселях картинок одинаковый).
В принципе, демонстрация части картинки, это не проблема, если это делается в иллюстративных целях, но судя по тому, что потому вы эту же масштабированную картинку накладываете на оригинальное изображение (изображение №8), где явно видно несовпадение контуров, это масштабирование реально выполняется в ходе исполнения вашей реализации, что скорее всего приводит к тому, что по факту анализируется только часть картинки.
если в кадре есть некоторое количество линий, ориентированных преимущественно вертикально, то можно предположить, что есть атмосферные осадки: дождь или снег
.
Как поведет себя алгоритм если идет косой дождь (с ветром)?
Алгоритм рассчитан на такие условия. Критерий вертикальности задается параметром max_angle. Если угол отклонения контура от вертикали меньше, чем значение этого параметра (к примеру, 30 градусов), то принимается, что контур связан с осадками. Таким образом, чем больше значение этого параметра, тем более косые дожди алгоритм будет выявлять.
Компьютерное зрение в поиске атмосферных осадков