RinOS
Пользователи-
Количество публикаций
99 -
Зарегистрирован
-
Посещение
-
Days Won
8
Все публикации пользователя RinOS
-
Всем привет! Пытался обучать классификатор Хаара, использовал haarkit. Но вышло как то не очень... Почему то детектируется фон, Куча разноцветных кружочков) Это значит что должно быть столько картинок (7000, 3000)? и причем у положительных должны быть выделены объекты типа: ? http://www.iem.pw.edu.pl/~domanskj/haarkit.rar
-
В самом деле так считате? Хм... как по мне так это один большой тормоз, кадры по секунде обрабатывает.
-
Нашел отличную реализацию, трекинга объектов спешу с вами поделиться. Смотрите вложение. Есть основные 4 функции cvLabel, cvFilterByArea, cvUpdateTracks, cvRenderTracks; В cvLabel передается сегментированное изображение, функция назначает белым пятнам(blob), каждому свой номер. (как сегментировать решаем сами, в примере осуществляется поиск красного квадрата) cvFilterByArea удаляет blob-ы которые не подходят по площади. cvUpdateTracks собственно сам трекинг. cvRenderTracks отображение blob-ов. Проект расположен тут: http://code.google.com/p/cvblob/ BlobTrack.rar
-
Когда происходит какая либо ошибка в OpenCV, выскакивает окошко (к примеру): Нельзя ли как ни будь отключить их? А в идеале работать с исключениями try catch.
-
Все таки можно отключать), без перекомпиляции cvSetErrMode(CV_ErrModeSilent); Нашел ответ в другом топике)
-
Посмотри еще Шаблоны Движения: http://www.compvision.ru/forum/index.php?showtopic=17 Очень полезная штука. Хотя как полноценно прикрутить трекинг объектов средствами OpenCV, я не придумал... Если кто подскажет буду очень благодарен.
-
Пытался перекомпилировать посыпались ошибки: Так же не получилось найти cvd.lib, cxcored.lib.
-
Что то я даже не понял как peopledetect работает... Запустил peopledetect.exe с параметром, (передал картинку с изображением человека) peopledetect задумался на секунду и просто показал мне эту картинку... Что я не так делал?
-
О сколько нам отрытий чудных... Совершенно случайно вместо cvCreateCameraCapture использовал cvCaptureFromCAM. И мне выдалось сообщение типа Axis Video not initialisation. И тут меня осенило В общем полез в GraphEdit настраивать "Axis Video Capture Driver", соединение с камерой Axis. И к моему глубочайшему удивлению мне удалось соедениться с камерой, вот так: Capture = cvCaptureFromCAM(0); Вот только возник другой вопрос, где храняться настройки и можно ли как то использовать больше одной камеры...
-
А знаете ли вы... Есть код: CvCapture *capture = cvCreateFileCapture("1.avi"); IplImage *img; for (int i = 0; i <= 100; i++) { img = cvQueryFrame(capture); cvShowImage("1", img); cvWaitKey(10); } if (capture) cvReleaseCapture(&capture); if (img) cvReleaseImage(&img); // Вот здесь произойдет ошибка. т.к. внутренности img очистил cvReleaseCapture, но указатель ссылающийся в никуда остался) по этому выполниться cvReleaseImage(&img) и произойдет ошибка. Будьте осторожны сам ломал голову над этим.
-
Только не понятно, как еще можно использовать кроме как рисовать персонажей на маркерах) Как еще можно использовать)?
-
Как будешь получать изображения? Камера будет висеть на дисплеем? Для начала я бы сделал картинки с изображением каждой цифры.
-
Вот так получаю jpg с IP камеры #include <urlmon.h> #include <wininet.h> IplImage* QueryFrame(char *sourceurl, AnsiString path) { try { DeleteUrlCacheEntry(PChar(sourceurl)); if (image) cvReleaseImage(&image); char* dstfile = AnsiString(path).c_str(); if (!(URLDownloadToFile(NULL, sourceurl, dstfile, 0, NULL) == S_OK)) return 0; image = cvLoadImage(dstfile, 1); return image; } catch (...) { return 0; } }
-
Всем привет! Есть код: void PyrSegment( IplImage* src, IplImage* dst ) { CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* comp = NULL; cvPyrSegmentation( src, dst, storage, &comp, 4, 200, 50 ); int n_comp = comp->total; for( int i=0; i<n_comp; i++ ) { CvConnectedComp* cc = (CvConnectedComp*) cvGetSeqElem( comp, i ); do_something_with( cc ); } cvReleaseMemStorage( &storage ); } ... IplImage *image = cvLoadImage("1.jpg"); IplImage *out = cvCreateImage(cvSize(image->width, image->height), image->depth, image->nChannels); PyrSegment(image, out); Взял из книжки на строке с cvPyrSegmentation выдает ошибку has a bad argument, какие же ей аргументы передовать?
-
Возможно что то не так сделал... или у автора статьи OpenCV и IP Axis, по другому сделано. В общем я подумаю над этим)
-
Через жесткий диск обмен это долго) Можно к примеру загрузить в буфер, но вот проблема как из буфера в IplImage )?
-
В общем один из вариантов, получения видео такой: С помощью DirectShow, исключительно для камер Axis для других не пробывал. Скачиваем и устанавниваем Axis Video Capture Driver, в GraphEdit добавляем Axis MJPEG Capture Filter и выстраиваем следующую схему: После настраиваем Axis MJPEG Capture Filter: Проблема в том что я незнаю, как эту схему повторить для OpenCV, что бы просто работать с CvCapture, или хотя бы получать изображения как очередь IplImage. К тому же выходное видео имеет формат ASF. Что усложняет задачу. Другой способ более универсальный заключается в том что получать изображения в jpg, уж это умеют делать все камеры http://webcam.oii.ox.ac.uk/jpg/image.jpg Т.к. с C++ я пока на Вы, подскажите пожалуйста как просто получить файл по HTTP. Можно примерчик)
-
Всем привет! В общем нашел такую интересную функцию cvRemap, но что то особо не понял ка она действует, хотя примерчик накатал cvNamedWindow("MyWnd", CV_WINDOW_AUTOSIZE); cvNamedWindow("MyWnd2", CV_WINDOW_AUTOSIZE); IplImage *src = cvLoadImage("1.jpg"); IplImage *dst = cvCreateImage(cvSize(src->width, src->height), src->depth, src->nChannels); IplImage *mapx = cvCreateImage(cvSize(src->width, src->height), IPL_DEPTH_32F, 1); IplImage *mapy = cvCreateImage(cvSize(src->width, src->height), IPL_DEPTH_32F, 1); cvZero(mapx); cvZero(mapy); for (int i = 0; i < mapx->width; i++) { for (int j = 0; j < mapx->height; j++) { cvSetReal2D(mapx, j, i, i+sin(j)); } } for (int i = 0; i < mapy->width; i++) { for (int j = 0; j < mapy->height; j++) { cvSetReal2D(mapy, j, i, j+sin(i)); } } cvRemap(src, dst, mapx, mapy, CV_INTER_LINEAR, cvScalarAll(0)); cvShowImage("MyWnd", src); cvShowImage("MyWnd2", dst); cvWaitKey(0);
-
Вот сдесь: http://www.rainsoft.de/projects/ffmpeg_opencv.html пишут как включить поддержку FFMPEG в OpenCV, но под линукс(
-
Закомментировал в коде #ifdef HAVE_FFMPEG #ifdef HAVE_FFMPEG CvCapture* cvCreateFileCapture_FFMPEG (const char* filename); CvVideoWriter* cvCreateVideoWriter_FFMPEG ( const char* filename, int fourcc, double fps, CvSize frameSize, int is_color ); #endif Линкер начал писать [Linker Error] Error: Unresolved external 'cvCreateFileCapture_FFMPEG(const char *)' referenced from C:\URL CAM\UNIT1.OBJ
-
На сайтах пишут что нужно перекомпилировать с FFMPEG... CvCapture *capture = cvCreateFileCapture_FFMPEG("http://axis-cam/video.mjpg");
-
Да такая идея, посещала меня) Ну это на крайний случай))
-
ясно... эти бибилиотеки настойчиво требует ffopencv.h...
-
Мда...) в одной функции memstorage был объявлен как статик Классно) подумаю над тем что бы сделать через интерфейс) Спасибо!
-
В папке C:\Program Files\OpenCV\otherlibs\_graphics\libC:\Program Files\OpenCV\otherlibs\_graphics\lib, есть странные библиотеки с расширением *.a, к примеру: libavcodec.a. С помощью LibConverter выложенного здесь, конвертировать не получилось. Выдает ошибку: *********************** Файл:OMFlibavcodec.lib ERROR: COFF error: libavcodec.lib (coffread.cpp, 1313) : index into non-existant long names table COFF to OMF Converter Version 1.0.0.74 Copyright © 1999, 2000 Inprise Corporation Конвертация файла окончена. *********************** Что делать)?