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

Nuzhny

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

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

  • Посещение

  • Days Won

    176

Все публикации пользователя Nuzhny

  1. Трекинг объектов.

    Пробовал стандартные примеры из OpenCV? blobtracking, например.
  2. opencv 2.2

    Не надо плакать.
  3. Работа с камерами

    Честно скажу - не знаю, зачем тебе, но держи: play.zip
  4. Отсечь легко: 1. создаёшь изображение необходимого размера; 2. делаешь SetImageROI к основному изображению; 3. копируешь основное в новое; 4. ResetImageROI к основному изображению. По разворачиванию Smorodov уже приводил функцию.
  5. Гм. Ты меня удивляешь. А это что: CvPoint center = cvPointFrom32f(box.center); ?
  6. Инклуды необходимые подключи.
  7. Всё просто - пять минут и готово: int main() { IplImage *img = cvLoadImage("d:\\5d986c08ef3e.jpg"); IplImage *bin_img = cvCreateImage(cvGetSize(img), 8, 1); cvCvtColor(img, bin_img, CV_RGB2GRAY); cvThreshold(bin_img, bin_img, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU); cvErode(bin_img, bin_img, NULL, 1); cvDilate(bin_img, bin_img, NULL, 5); cvErode(bin_img, bin_img, NULL, 4); CvMemStorage *storage = cvCreateMemStorage(0); CvContourScanner traverse = cvStartFindContours(bin_img, storage, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_NONE); CvSeq *mContour = 0; for (CvSeq *contour = cvFindNextContour(traverse); contour; contour = cvFindNextContour(traverse)) { CvBox2D box = cvFitEllipse2(contour); CvPoint center = cvPointFrom32f(box.center); CvSize size = cvSize(cvRound(box.size.width*0.5), cvRound(box.size.height*0.5)); cvEllipse(img, center, size, -box.angle, 0, 360, CV_RGB(0,0,255), 1, CV_AA, 0); } cvEndFindContours(&traverse); cvReleaseMemStorage(&storage); cvShowImage("1", img); cvShowImage("2", bin_img); for (; { if (cvWaitKey(10) > 0) break; } cvReleaseImage(&bin_img); cvReleaseImage(&img); return 0; }[/code]
  8. Работа с камерами

    Да, с собой. dll к проекту никак подключать не надо, подключать надо соответствующие lib.
  9. Работа с камерами

    Разумеется, используемые dll надо носить с собой. Инклуды стандартные, опенсивишные. Запусти "ffplay.exe пробел имя avi файла". Проигрывается? Отлично! Тоже самое будет и с сетевой камерой, если её протокол поддерживается и авторизация разрешена. Если нет, то и через OpenCV не получится.
  10. Работа с камерами

    Я уже выкладывал скомпилированные с ffmpeg библиотеки OpenCV 2.1. Вызывать надо функцию cvCaptureFromAVI и смотреть. Интернет у меня медленный, камеры в локальной сети нет, так что проверить работоспособность не могу. Но 100% при захвате будет использоваться ffmpeg. Пара пояснений про механизм работы. Библиотека ffmpeg состоит из двух программ: ffmpeg.exe и ffplay.exe. Ну и dll для использования в своих проектах. ffmpeg.exe служит для кодирования/декодирования/фильтрации видео, а ffplay.exe для проигрывания файлов, а также захвата с некоторых типов камер. Можно запустить ffplay.exe "адрес камеры", чтобы узнать, способен ли ffmpeg захватывать с данной камеры. И уже после пробовать на OpenCV. И несколько слов про ip-камеры вообще. Они все требуют авторизации. На некоторых публичных она отключена. Иногда можно авторизоваться, вписав имя пользователя и пароль в адрес (для разных камер разный формат). Камеры работают по разным протоколам, протоколов много. Фактически, не существует одного способа захвата со всех камер (это не web-камеры, с которыми всё просто). Зачастую одна камера может поддерживать несколько протоколов. Самая распространённая библиотека для захвата - это vlc. Она поддерживает довольно много протоколов, имеет открытые исходники. Можешь скачать vlc player, посмотреть.
  11. Работа с камерами

    Некоторые из Axis поддерживают RTSP, это точно знаю. Про Planeta первый раз слышу. Есть ещё ряд камер и ip-серверов, которые его поддерживают, он довольно распространён.
  12. Работа с камерами

    Да, к ним так просто не подключишься. Там не прямые адреса, а перенаправление с камер через ActiveX. Раньше (пару лет назад) я точно находил где-то в интернете камеры, к которым можно было подключаться напрямую. Сейчас что-то ничего не попадается. На всякий случай: OpenCV вместе с ffmpeg может подключаться только к RTSP камерам. Такие и надо искать.
  13. Работа с камерами

    Камер полно: первая ссылка в гугле.
  14. Я тоже думаю, что обсуждение новостей должно быть частью форума, а не блогами: 1. для новости создавать тему в форуме; 2. в самой новости давать ссылку на созданную тему; 3. первое сообщение темы - название новости и ссылка на неё. Так сделано на ag.ru, вроде как удобно.
  15. Проблемы при бинаризации.

    Мне как-то надо было бинаризовывать текст перед его распознаванием. Локальный порог давал плохие результаты, глобальный, подобранный методом Оцу, тоже. Так я с помощью контуров искал текст, а после уже бинаризовывал только область с текстом. Порог подбирал методом Оцу именно внутри данной области. Я к чему: всё зависит от задачи.
  16. Можно добавить, что не проблема совмещать OpenCV и CUDA (OpenCL или язык от ATI) в одном проекте. А в последней версии OpenCV так вообще встроена поддержка GPU. Плюс соглашусь с yks: для математиков Matlab гораздо удобней. Не волнует, что он дороговат? Я лично не люблю пиратское ПО. И еще: в Matlab тоже есть поддержка вычислений на GPU. И он совсем не медленный.
  17. Распознавание лиц

    1. Что значит "содержимое"? Люди, дорога, здания, деревья? 2. Тут на форуме пробовали найти одно лицо, а дальше его сопровождать: здесь Если пример немного переделать: при нахождении нового лица проверять, сколько сопровождаемых точек попадает в найденную область; если большинство, то найдено тоже лицо, если же совсем мало, то найденное лицо новое.
  18. cvCvtColor

    Людиии! Уже несколько десятков лет назад придумали отладчик. Научитесь в конце-концов им пользоваться!
  19. opencv 2.2

    Да, библиотека развивается приличными темпами. Особенно радует, что они начинают поддерживать GPU.
  20. cvLoadImage возращает NULL

    Создаёшь через cvCreateImage, копируешь в буфер imageData. Вообще, зависит от того, в каком формате будут данные.
  21. Ну, я под Линуксом только пользователь. Но что-то мне подсказывает, что надо скомпилировать OpenCV с генерацией отладочной информации, а после воспользоваться GDB
  22. cvLoadImage возращает NULL

    А, вот в чём дело. Запустил под отладчиком: ошибка "Sorry, requested compression method is not configured" Если более детально, то используется вид сжатия "TIFF-PackBits", который, оказывается, не поддерживается библиотекой.
  23. cvLoadImage возращает NULL

    OpenCV поддерживает tiff. Для этого существует проект libtiff, который создаёт статическую библиотеку, влинковывающуюся в highgui.dll Но! Всё это происходит, если была установлена опция HAVE_TIFF препроцессора при компиляции highgui.dll Кажется, использование libtiff также указывается в CMake при первоначальном развёртывании проектов.
  24. Собери программу с отладочной версией OpenCV и посмотри в отладчике в чём проблема. Кроме тебя этого никто сделать не сможет.
  25. Распознавание лиц

    А я как-то раз из любопытства залазил внутрь функции cvHaarDetectObjects. Выкинул всё лишнее, временные объекты внутри создавал только один раз (у меня видео анализировалось, не было необходимости на каждом кадре всё заново создавать), искал только одно лицо на кадре и т.д. и т.п. Короче переписал функцию под свои частные нужды. Получилось раз в 10 быстрее. Исходники, правда, выложить не могу.
×