Использование OpenCV в Delphi

    Так случилось, что я активно использую Delphi в своей работе (программирование по работе, собственные открытые и закрытые проекты) и вот мне понадобилось написать программу, использующую открытую библиотеку компьютерного зрения OpenCV. Что же делать, ведь официально OpenCV использовать в Delphi невозможно, а перебираться на C ради одной программы слишком долго.

    Но нет ничего невозможного…


    Немного поискав в интернете, я нашел несколько проектов по использованию OpenCV в Delphi.
    Первый, второй, третий и наиболее свежий и удачный — четвертый, который я и взял за основу.

    Проект на github мне показался интересным, реализовано много функций OpenCV, есть много примеров на Delphi, но проект заброшен автором и пришлось взяться за свой.

    Все текущие наработки я выложил на code.google.com/p/opencv-delphi-new

    В настоящий момент сделано:
    1. Поддержка RAD Studio XE3.
    2. Добавлены новые функции: cvFlip, cvClearMemStorage, cvCreateChildMemStorage, cvRectangle, cvRetrieveFrame, cvIntegral, cvGetPerspectiveTransform, cvWarpPerspective, cvCreateMat, cv2DRotationMatrix, cvWarpAffine, cvFindContours, cvHaarDetectObjects.
    3. Добавлено 6 новых примеров:
    FaceDetect — Пример детектирования лица в видеопотоке с использованием преобразования Хафа.
    FindContours — Нахождение контуров изображения.
    Integral — Интегральное изображение.
    WarpAffine — Трансформация изображения — аффинные преобразования (Поворот изображения на произвольный угол).
    WrapPrespective — Трансформация изображения — гомография (Перспективная трансформация).
    MatchShapes — Поиск объекта на изображении по шаблону (Сравнение объектов по моментам их контуров).

    В добавленных примерах я постарался подробно расписать все манипуляции для достяжения нужного результата.

    Если кому-то будет интересна тема использования OpenCV в Delphi, то пишите мне на email или оставляйте комментарии.
    Если тематика использования OpenCV в принципе интересна, то могу написать несколько статей, только напишите, какое направление использования OpenCV Вас интересует.
    Метки:
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 10
    • +2
      Тема безусловно интересна.
      Интересует направление «Распознавание дорожных знаков», «Распознавание автомобильных номеров»
      • +2
        Как раз занимаюсь этими вопросами, тема очень интересная и мало освещенная в интернете.
      • +3
        меня интересует больше распознавание руки — в частности движение кисти и пальцев.
        можно будет написать простенькое приложение для управления компьютером через вэбкамеру.
        • 0
          >>распознавание руки — в частности движение кисти и пальцев.

          Это довольно сложная задача, думаю даже с помощью одной камеры не решаемая, вспомните Microsoft Kinect, там не только камера участвует в распознавании.
          • 0
            ну там не только камера для 3х-мерного отслеживания, а двумерное распознавание (лодонь в одной плоскости) думаю возможно
            • 0
              На самом деле по «Распознавание дорожных знаков», «Распознавание автомобильных номеров» теоретической литературы полным полно, и даже есть практические проекты с исходниками (и они хоть и криво но работают), но все они почему то загнулись на начальной стадии, то ли авторы не осилили вопрос, то ли им помогли не осилить.
        • 0
          Работа с видеопотоком, распознание движущихся объектов, поиск и распознание лиц. Ну и как сказано выше: распознание дорожных знаков и автомобильных номеров. С математикой и примерами было-бы очень интересно.
          • 0
            И ещё, интеграция OpenCL и OpenCV — не копали в этом направлении? Естественно со стороны использования в Delphi.
          • 0
            Вообще как вариант можно было бы это применить в таком коммерческом проекте!!!

            www.itv.ru/products/intellect/additional_modules/rw/

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.