Как удалить пробуждение корабля на изображении с помощью opencv?

Я хочу использовать цвет для обнаружения белого корабля. Когда скорость корабля низкая, я могу получить хороший результат. Но когда скорость высокая, я не могу. Потому что след корабля тоже белый. Я пытаюсь использовать Метод эрозии и расширения для удаления следа от корабля, но результат не очень хороший. Как я могу удалить след от корабля. enter image  описание здесь» /> вы можете увидеть изображение следующим образом, след белый, поэтому его трудно разделить на сегменты корабля и пробуждения. Можете ли вы помочь мне и показать мне свою идею. Заранее спасибо!</p>
    </div>

    <br>

    <div class=

person GKG DTH    schedule 14.07.2015    source источник
comment
Я хочу использовать цвет, чтобы обнаружить белый корабль. Как вы сами сказали, одного цвета недостаточно. Если на всех изображениях нет ничего, кроме воды и корабля, то правильная сегментация (возможно, в градациях серого) была бы лучше.   -  person runDOSrun    schedule 14.07.2015
comment
Я думаю, что функции могут помочь.   -  person Yang Kui    schedule 14.07.2015


Ответы (2)


Я бы больше стремился использовать тот факт, что следы гораздо более линейны, чем корабль. Или даже то, что корабль находится «на другом конце кильватерного следа».

Первый грубый проход порога HSV, чтобы получить всю «белую область», включая корабль и след, затем попробовать что-то для идентификации, а затем отбросить линии.

Линейное преобразование Хафа может помочь, при условии, что вы можете преобразовать изображение с пороговым значением в правдоподобные края, которые потребуют некоторой морфологической настройки.

Оттуда вы можете фактически провести линию следа, и половина вашей работы сделана. Конкретная граница пробуждения к кораблю будет более сложной проблемой, связанной с обнаружением границ, но если вы заботитесь только об этом, я думаю, что ваша проблема в основном решена! :п


Интересно, что это довольно распространенная проблема со спутниковыми радиолокационными изображениями посмотрите мой быстрый поиск в Google. Конечно, эти изображения не обязательно должны учитывать сам корабль большую часть времени и иметь различные ограничения шума и изображения, но вы можете просто почерпнуть пару крутых идей из их решений.

Например: Эльдхусет, Кнут. «Автоматическая система обнаружения кораблей и кораблей по радиолокационным изображениям в прибрежных районах.

person Jiby    schedule 15.07.2015
comment
Спасибо за ваш комментарий! Но я думаю, что следы больше похожи на область пятна, чем на линию. Трудно получить линии. Кроме того, после того, как я получу много линий, как я могу обнаружить корабль? Вы сказали, что корабль находится на другом конце wake Но, может быть, не на другом конце некоторых линий, которые мы получили. - person GKG DTH; 16.07.2015
comment
Достаточно верно: в идеале у вас должны быть следы, сходящиеся на реальном корабле, и поиск абстрактных линий следа (угол + смещение линейного уравнения) поможет вам отбросить области изображения, на которых нет корабля. Хотя водные лыжи в твоем образе не помогут :D - person Jiby; 16.07.2015
comment
Спасибо за ваш аванс! - person GKG DTH; 18.07.2015

Я думаю, что вы задавали аналогичный вопрос об обнаружении мяча в такой ситуации. Ответ на этот вопрос также будет аналогичен ответу на этот вопрос.

  • Обнаружьте пиксели, содержащие белый цвет, используя ваш метод HSV.

  • рассчитать оптический поток для этих белых пикселей.

  • Белые пиксели, соответствующие Кораблю, будут иметь более высокую скорость, чем белые пиксели, принадлежащие водным волнам.

  • вы получите набор пикселей с наибольшей скоростью (все они принадлежат кораблю). Затем попытайтесь найти пиксель на крайнем краю (угловой пиксель корабля) в направлении движения, используя координату пикселя. Вам просто нужно найти min(y) или max(y), если направление находится в направлении Y.

  • нарисуйте круг вокруг этого пикселя... это будет обнаружение вашего корабля.

person skm    schedule 14.07.2015