Рубрики
Без рубрики

Активные контуры с OpenCV

Во время моего прошлого года моим бакалавриатам в области компьютерных наук я работал с автоматическим доктором … Теги от ржавчины, Python, CPP, Opencv.

Во время моего прошлого года моим бакалавриатам в области компьютерных наук я работал с автоматическим управлением беспилотника, используя что-то называемое Активные контуры Отказ Используемый контурным алгоритмом был Исследование моего советника И это было в первую очередь, моя задача просто принять информацию от указанного контура и перевести его в управление беспилотством. Мне не нужно было реализовать алгоритм, но это заинтересовало меня активными контурами (змеями). Некоторое время назад жду, чтобы услышать обратно на возможность работы, я решил сыграть с C ++ и Opencv, пытаясь попасть под капот этих алгоритмов змей. Я знал, что вариант, который мы использовали для проекта. За это время я реализовал алгоритм змеи C ++/QT, И это пошло довольно хорошо Отказ

Алгоритм вот вроде хрома. Это простое алгоритм минимизации энергии, полученное из Эта бумага Отказ

    Energy = ∫(α(s)Econt + β(s)Ecurv + γ(s)Eimage)ds

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

Наличие зуда, чтобы снова играть с змеями (пару лет спустя) Я решил, что могу захотеть пересматривать основы и, возможно, посмотреть, смогу ли я сделать змею немного лучше. Я не мог решить, хочу ли я использовать ржавчину (которая в настоящее время в влюблении) или Python (которая будет медленнее, но намного проще начать).

Для того, чтобы выяснить, что я хотел бы сделать, я, очевидно, пришлось реализовать обоих и увидеть, что будет моя цель.

Питон

Как вы можете себе представить, Python был довольно простым. Я использовал Pip, чтобы установить OpenCv и поехал. Я получил Реализация завершено примерно за 45 минут. Все прошло хорошо, но что-то в использовании Python для этой задачи просто потирает меня неправильно.

Ржавчина

Начало работы в ржавее было немного сложнее. Я должен был использовать opencv-rust И сразитесь с моим Mac немного, чтобы добраться до здания. Как только я построил его здания, я должен был просеять документацию, чтобы увидеть, как все работает с сгенерированным кодом ржавчины для OpenCV. Это заняло пару часов но Я тоже это работал Отказ

Следующие шаги

Теперь, когда я реализовал простой алгоритм в C ++/Python/Rust, думаю, я могу сказать наверняка, что я хорошо понимаю, как это работает. Я определенно буду продолжать с ржавчиной .. Я просто люблю это слишком много. Я надеюсь, что в ближайшие месяцы я буду на уме сделать некоторые улучшения и, возможно, даже справиться Анизотропные фрактальные змеи Отказ

Оригинал: “https://dev.to/bosley/active-contours-with-opencv-2ck5”