Перейти к содержимому
Compvision.ru

Art!P

Пользователи
  • Количество публикаций

    6
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О Art!P

  • Звание
    Новичок
  1. DELPHI + OpenCV 2.2

    та библиотека (2.1) не полная. Некоторые типы не соответствуют, некоторые части я "переписывал". Была бы полная и верная реализация 2.2 - её нет. делать самому страшно, там слишком дофига что переносить )
  2. нормально все) я тут видео с рабочего стола обрабатываю, делал РОИ, потом отдельные участки РОИл ) всего 5 областей интересов ищу по 10-15 объектов, и в секунду кадров 20-30 выходило. Нормально в целом тянет. Правда нагрузка на проц не слабая оказалась. ядро до 30% (у мну Intel e4300 1.8Ghz) поднималось. Мне много не нужно оставил 2-3 к/с, нагрузка 4-5%. Ну а если производительность позволяет почему бы нет?
  3. Сделайте комбинированный поиск с помощью cvTemplateMatch и cvminmaxloc для определения координат наиболее подходящего обьекты (возможно придется использовать моменты), задать область интереса (ROI) и в новых пределах обьекта поискать буквы. Далее ресет ROI и следующий битмап, если объектов на интересующей области не один. Конечно проще было бы если известны "слова", т.е. последовательность. Можно было бы создать библиотеку готовых объектов и слов.
  4. Delphi/Lazarus

    с загрузкой скрина в ipl вроде разобрался собрал кусок, надеюсь если кто разберается в паскале поймет, процедура скриншота: Procedure DesktopToIpl(iplimg:PIplImage); var c: TCanvas; r: TRect; bmp:TBitmap; bmpsize:Integer; begin bmp:=TBitmap.Create; // структура битмапа c := TCanvas.Create; // структура временной канвы c.Handle := GetWindowDC(GetDesktopWindow); // хэндл DC try bmp.PixelFormat:=pf8bit; r := Rect(0, 0, Screen.Width, Screen.Height); bmp.Width := Screen.Width; bmp.Height := Screen.Height; bmp.Canvas.CopyRect(r, c, r); // загружаем данные в битмап finally ReleaseDC(0, c.Handle); c.Free; end; bmpsize:=bmp.RawImage.DataSize; // размер битмапа copymemory(iplimg^.imageData, bmp.RawImage.Data,bmpsize); // копируем данные в Ipl контейнер copymemory(iplimg^.imageDataOrigin, bmp.RawImage.Data,bmpsize); // нужен для корректной делокации? без этого работает iplimg^.imageSize:=bmpsize; // устаналиваем размер битмапа в Ipl bmp.Free; end; как это пользовать: procedure TForm1.Button1Click(Sender: TObject); var ipl,ipl2:PIplImage; iplsize: cvSize; begin iplsize.height:=Screen.Height; iplsize.width:=Screen.Width; ipl:=cvCreateimage(iplsize,8,3); // структура ipl, 8 бит, 3 канала ipl2:=cvCreateimage(iplsize,8,1); // структура 8 бит, серый DesktopToIpl(ipl); // скриншот экрана cvNamedWindow('main',CV_WINDOW_AUTOSIZE); cvCvtColor(pointer(ipl),pointer(ipl2), CV_BGR2GRAY); // из цветного в серый cvShowImage('main', pointer(ipl2)); // вывод на экран end; работает в лазарусе, в дельфях по идее должен работать
  5. Перевод книги Learning OpenCV

    спасибо за перевод! если получится, то помогу и поучаствую
  6. Delphi/Lazarus

    Привет! пишу на дельфи, писал... его хорошо знаю, но он мне пока не по корману. Поэтому использую бесплатный Lazarus (фрипаскаль) Начал изучать OpenCV. 2-ой день как уже начал, а он весь в Си Наткнулся на библиотеку CVopenCV.dll ну и andrew smirnov выложил ПАСы (delphi_header), на лазарусе идет нормально. Смотрел её утилитой dllview, судя по кол-ву функции в проекте для дельфи описаны не все функции из CVopenCV.dll. Например capture с камеры не описан Хотя есть вроде всё самое нужное. Думаю можно посидеть и дописать если возникнет необходимость, а Си немного понимаю. Есть хорошая известная книга, но перевода пока его маловато )) в http://locv.ru/ изучаю, спасибо автору проекта. Так что если не понятно буду спрашивать (ну не по паскалю), а по принципу работы. есть проблема с русскими путями (OC VISTA), почему-то у меня из "русских" папок и "русских" имен файлов не грузит. это нюанс среды разработки? После возни с указателями и классами, я уже разобрался с загрузкой изображения cvLoadImage, всякого рода "порогами", канни и ковыряю cvFindContours, нахожу контуры. Извините за не внимательность не успел всё прочесть, а хочется быстрее. Имеются вопросы: 1. как подгружать рабочий стол (снимок рабочего стола)? если через GetDesktopWindow(хэндл_рабочего_стола) этот указатель на битмап в сразу бы IplImage, или на это в OpenCV стандартная функция имеется (в библиотеке не нахожу). 2.При поиске объектов на фотографии (не лица, сложные фигуры), что лучше применить? и что быстрее работает? Пока понимаю есть метод сравнения контуров. А классификаторы Хаара "привязаны" к лицам? Эти хранилища можно "переучить"? Спасибо
×