holmes 0 Report post Posted January 11, 2010 Именно так. Дамаете, что идея бредовая? Facedetect я переписал на делфи. Сейчас пробую переписать заголовочные файлы полностью - надеюсь, что терпения хватит. Могу потом выложить, что получится. Здравствуйте. А можно исходники переписанного Facedetect? Мучаюсь уже неделю. cvLoad и cvHaarDetectObjects еще не победил. Share this post Link to post Share on other sites
holmes 0 Report post Posted January 11, 2010 На другой машине стала загружать каскад при помощи cvLoad. Однако на мой код постоянно выдает Access violation at 005CE4E4 in libcv200.dll. Read of FFFFFFFF Как будто пытается достучаться до несуществующего объекта. Уже половину кода закомментил. То запустишь - работает, то не работает (большую часть времени). Вот код: var cascade: PCvHaarClassifierCascade; capture: PcvCapture; image: PIplImage; frame, gray: PCvMat; frame_, gray_: CvMat; s: CvSize; storage: pointer; faces: PCvSeq; begin s.w:= 30; s.h:= 30; cascade:= nil; capture:= nil; image:= nil; storage:= nil; faces:= nil; cascade:= cvLoad(pchar('haarcascade_frontalface_alt.xml'), nil, nil, nil); if not bool(cascade) then begin smsg('ERROR: Could not load classifier cascade'); exit; end; {capture:= cvCreateCameraCapture(0); if not bool(capture) then begin smsg('ERROR: Could not create cam capture'); exit; end; image:= cvQueryFrame(capture);} image:= cvLoadImage(pchar('lena.jpg'), CV_LOAD_IMAGE_UNCHANGED); frame:= cvGetMat(image, @frame_, nil, 0); //cvNamedWindow('result', 1); //cvShowImage('result', frame); if bool(frame) then begin gray:= cvInitMatHeader(@gray_, image^.height, image^.width, CV_8UC1, nil, CV_AUTOSTEP); cvCreateData(gray); cvCvtColor(frame, gray, CV_BGR2GRAY); cvEqualizeHist(gray, gray); //storage:= cvCreateMemStorage(0); //faces:= cvHaarDetectObjects(gray, cascade, storage, 1.1, 2, CV_HAAR_DO_CANNY_PRUNING, s); //cvShowImage('result', gray); //if bool(storage) then cvReleaseMemStorage(@storage); //if bool(gray) then cvReleaseMat(@gray); //if bool(frame) then cvReleaseMat(@frame); end; //if bool(image) then cvReleaseImage(@image); //cvReleaseCapture(@capture); end; Share this post Link to post Share on other sites
Smorodov 579 Report post Posted January 11, 2010 А нельзя в паскале что то типа этого написать, вместо плясок с матрицами? (я просто не пробовал на паскале) img = cvLoadImage("OpenCv.jpg"); gray = cvCreateImage(cvSize(img->width,img->height), IPL_DEPTH_8U, 1); cvCvtColor(img, gray, CV_BGR2GRAY); // Получаем серый цвет Share this post Link to post Share on other sites
holmes 0 Report post Posted January 12, 2010 В принципе да. Но, все равно глюки. Вот это работает image:= cvLoadImage(pchar('lena.jpg'), 1); gray:= cvCreateImage(cvSize_(image^.width, image^.height), 8, 1); cvCvtColor(image, gray, CV_BGR2GRAY); А вот это уже выдает ошибку image:= cvLoadImage(pchar('lena.jpg'), 1); gray:= cvCreateImage(cvSize_(image^.width, image^.height), 8, 1); cvCvtColor(image, gray, CV_BGR2GRAY); cvEqualizeHist(gray, gray); Такое чувство что cvCvtColor еще работает с данными, а cvEqualizeHist уже пытается получить к ним доступ. Но ведь так не должно быть. Share this post Link to post Share on other sites
holmes 0 Report post Posted January 12, 2010 Решил проблему довольно просто. Использую версию 1.0. Вторая просто глючная ... Share this post Link to post Share on other sites
holmes 0 Report post Posted January 14, 2010 Иногда, когда не получается, полезно читать readme. Библиотеки во второй версии собраны под MinGW. Собрал в Visual Studio 2008 и теперь все работает. Share this post Link to post Share on other sites
youzhick 0 Report post Posted January 21, 2010 Тоже не выгружаются многие аппликухи, использующие OpenCV. Причем, есть два компьютера (оба Win XP): на одном все корректно завершается, на другом - остаются "призраки". Не выгружается на втором даже большинство OpenCVшных самплов. За прошедшее с последнего сообщения время никто проблему так и не решил? Share this post Link to post Share on other sites
Smorodov 579 Report post Posted January 21, 2010 Тоже не выгружаются многие аппликухи, использующие OpenCV. Причем, есть два компьютера (оба Win XP): на одном все корректно завершается, на другом - остаются "призраки". Не выгружается на втором даже большинство OpenCVшных самплов. За прошедшее с последнего сообщения время никто проблему так и не решил? Сталкивался с таким поведением, когда камера не останавливала свою работу корректно. При этом: не запускались другие приложения, лампочка на камере светилась, процессы застревали в памяти, помогала только холодная перезагрузка. Отсюда предложение, может перед завершением приложения надо подождать отключения камеры? Share this post Link to post Share on other sites
youzhick 0 Report post Posted January 25, 2010 Сталкивался с таким поведением, когда камера не останавливала свою работу корректно. При этом: не запускались другие приложения, лампочка на камере светилась, процессы застревали в памяти, помогала только холодная перезагрузка. Отсюда предложение, может перед завершением приложения надо подождать отключения камеры? Не, такая фигня происходит с совершенно разными Open CV приложениями (родными примерами), в т.ч. и не использкющими камеру. А в своей собственной программе я получаю такую же проблему даже просто добавив инклуды OCVшных хедеров. Вообще не вызывая из них ничего. Причем, до закрытия программа функционирует совершенно нормально, и после попытки закрытия "подвисший призрак" ничуть не мешает запуску и работе других аппликух - в т.ч. и запуску других копий этой же. Что с камерой - что без. Никаких явных сбоев, кроме того, что остается лишний процесс, жрущий ~10 метров памяти. И это только на одном компе, на другом - все ОК. Вот только запустить в результате надо на том, на котором не ОК Share this post Link to post Share on other sites
Smorodov 579 Report post Posted January 26, 2010 Не, такая фигня происходит с совершенно разными Open CV приложениями (родными примерами), в т.ч. и не использкющими камеру. А в своей собственной программе я получаю такую же проблему даже просто добавив инклуды OCVшных хедеров. Вообще не вызывая из них ничего. Причем, до закрытия программа функционирует совершенно нормально, и после попытки закрытия "подвисший призрак" ничуть не мешает запуску и работе других аппликух - в т.ч. и запуску других копий этой же. Что с камерой - что без. Никаких явных сбоев, кроме того, что остается лишний процесс, жрущий ~10 метров памяти. И это только на одном компе, на другом - все ОК. Вот только запустить в результате надо на том, на котором не ОК А если ему дать задание на самоубийство: после завершения послать процессу WM_CLOSE, если не поможет то через TerminateProcess. Мне не проверить предположение, у меня все очищается и так. И еще, какие точно версии WindowsXP стоят на одном (где все очищается) и на другом (на котором нет)? Можно ли убить призрак через диспетчер задач? Share this post Link to post Share on other sites
tybik 0 Report post Posted March 9, 2010 Народ помогите!Я пытаюсь поставить OpenCV2.0 и Borland C++ Builder и запустить какой нить проект.. но ниче не выходит.. Builder то не находит библиотеки то выскакивают какие то ошибки.. Пожалуйста напишите подробную инструкцию по установке.. Заранее благодарен... Share this post Link to post Share on other sites
Smorodov 579 Report post Posted March 9, 2010 Народ помогите!Я пытаюсь поставить OpenCV2.0 и Borland C++ Builder и запустить какой нить проект.. но ниче не выходит.. Builder то не находит библиотеки то выскакивают какие то ошибки.. Пожалуйста напишите подробную инструкцию по установке.. Заранее благодарен... Тема есть здесь: http://www.compvision.ru/forum/index.php?showtopic=64 Подробнее уже не очень помню. Но вроде делал так: 0) Надо установить MSVCR. 1) Собрал dll-ки и lib-ы под VS2008 при помощи CMAKE. 2) Сконвертировал (lib-ы) при помощи libconverter-a где то на форуме валяется. Можно использовать стандартный борландовский COFF2OMF.exe из командной строки. 3) Поправил заголовочники под Borland-овский компилятор (файлы которые у меня получились лежат в топике, упомянутом выше.). 4) Подключить библиотеки к проекту так же как и для OpenCV 1.1. У некоторых (или у многих, процент не знаю) возникают проблемы с файлами (Lib, dll) моей сборки, так что первый пункт лучше сделать самостоятельно. PS: А каких библиотек не хватает? Там часть можно отключить типа jpeg,png.... и т.д. Share this post Link to post Share on other sites
tybik 0 Report post Posted March 9, 2010 Я попробовал скачал по твоей ссылке VisionLab. Поставил.. Запускаю пример..Пишет что не может найти VLAVIPlayer.PAS файл. Я так пробовал и в билдере и делфи. Одна и таже ошибка. У кого нить нормально поставились и заработали эти компоненты? Как мне это исправить? Share this post Link to post Share on other sites
Smorodov 579 Report post Posted March 10, 2010 Я попробовал скачал по твоей ссылке VisionLab. Поставил.. Запускаю пример..Пишет что не может найти VLAVIPlayer.PAS файл. Я так пробовал и в билдере и делфи. Одна и таже ошибка. У кого нить нормально поставились и заработали эти компоненты? Как мне это исправить? Извиняюсь, ошибся со ссылкой . Вот здесь надо смотреть: http://www.compvision.ru/forum/index.php?showtopic=202 А что касается VisionLab, и других компонентов в билдере, надо указать (проверить) пути к библиотекам в свойствах проекта (в 6 - м билдере пути обычно урезаются по умолчанию и он сам потом не может найти файлы). Share this post Link to post Share on other sites
maksimka 0 Report post Posted March 23, 2010 Пишу в коде: f=fopen(filename,"w"); fprintf(f,"%s",str); Компиляция - успешно. Запускаю - требует haartraining.dll. Смотрю haartraining.lib - действительно, есть упоминание про обе этих функции. Пробую удалять библиотеку - ругается. Может кто-то сталкивался и знает что можно сделать? Честно говоря не очень понимаю, зачем нужно было в haartraining такое писать - stdio.h это же святое! Share this post Link to post Share on other sites
Smorodov 579 Report post Posted March 24, 2010 В билдере тоже ругается, но если из проекта удалить все лишние lib файлы, включая haartraining.lib, то ошибка пропадает. У меня к проекту обычно подключены: cv200.lib cvaux200.lib cvcore200.lib cxtx200.lib highgui200.lib ml200.lib opencv_ffmpeg200.lib И компилируется без проблем. Share this post Link to post Share on other sites
maksimka 0 Report post Posted March 24, 2010 Спасибо. Получилось. Я тоже в билдере работаю. Помогла фраза "если из проекта удалить". Не часто подключаю сторонние библиотеки, забыл что нужно нажать Project->Remove from project. До этого то пытался просто файл haartraining.lib удалить Share this post Link to post Share on other sites
AlCapone 0 Report post Posted April 8, 2010 Вылезла проблема, не загружаются классификаторы: procedure TForm1.Button1Click(Sender: TObject); var img : PIplImage; file1 : PChar; file2 : PChar; begin file1 := 'haarcascade_frontalface_alt.xml'; file2 := 'haarcascade_eye.xml'; cascade_f := cvLoad(file1,0,0,0); cascade_e := cvLoad(file2,0,0,0); ... cascade_f и cascade_е остаются nil Share this post Link to post Share on other sites
Smorodov 579 Report post Posted April 8, 2010 Вылезла проблема, не загружаются классификаторы: procedure TForm1.Button1Click(Sender: TObject); var img : PIplImage; file1 : PChar; file2 : PChar; begin file1 := 'haarcascade_frontalface_alt.xml'; file2 := 'haarcascade_eye.xml'; cascade_f := cvLoad(file1,0,0,0); cascade_e := cvLoad(file2,0,0,0); ... cascade_f и cascade_е остаются nil В посте №16 вреде все загружается: http://www.compvision.ru/forum/index.php?s...dpost&p=949 Share this post Link to post Share on other sites
andrew smirnov 0 Report post Posted April 8, 2010 Вылезла проблема, не загружаются классификаторы: procedure TForm1.Button1Click(Sender: TObject); var img : PIplImage; file1 : PChar; file2 : PChar; begin file1 := 'haarcascade_frontalface_alt.xml'; file2 := 'haarcascade_eye.xml'; cascade_f := cvLoad(file1,0,0,0); cascade_e := cvLoad(file2,0,0,0); ... cascade_f и cascade_е остаются nil а если так: file1 := PChar('haarcascade_frontalface_alt.xml'); cascade_f := cvLoad(file1,0,0,0); Share this post Link to post Share on other sites
AlCapone 0 Report post Posted April 11, 2010 Все нормально, там просто все очень критично с путями. Я каскады засунул в одноименную папку (для чистоты ) и обращаюсь к ним таким вот образом: c_path := ExtractFilePath(ParamStr(0))+'cascades\'; f1 := c_path+'haarcascade_frontalface_alt.xml'; file1 := PChar(f1); cascade_f := cvLoad(file1,0,0,0); Вот, если кому интересно - проэкт на делфи, который находит лица, глаза, нос и рот. Напоминаю: для успешной работы в папке должна быть бибилиотека VCOpenCV.dllOCV.ZIP Share this post Link to post Share on other sites
Alex_grem 0 Report post Posted April 11, 2010 Пишу в CodeGear C++ Builder 11.0. При компиляции выскакивают ошибки: [iLINK32 Error] Error: Unresolved external '_cvCreateCameraCapture' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvInitFont' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvGrabFrame' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvRetrieveFrame' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvCreateImage' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvCopy' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvCloneImage' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvConvertScale' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvMerge' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvGetRawData' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvReleaseImage' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '__fastcall TForm1::FormCreate(System::TObject *)' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '__fastcall TForm1::Image1Click(System::TObject *)' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ [iLINK32 Error] Error: Unresolved external '_cvReleaseCapture' referenced from C:\DOCUMENTS AND SETTINGS\TTL-+T+г\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\PROGECTFIRSTTEST\DEBUG\UNIT1.OBJ Что посоветуете? Заранее спасибо! Share this post Link to post Share on other sites
Smorodov 579 Report post Posted April 11, 2010 Надо подключить библиотеки (.lib) к проекту. Share this post Link to post Share on other sites
Alex_grem 0 Report post Posted April 11, 2010 Подскажите, пожалуйста, как это сделать в C++ Builder? Share this post Link to post Share on other sites
Alex_grem 0 Report post Posted April 11, 2010 Все, разобрался! Только возникает другой вопрос: пытаюсь загрузить картинку с помощью команды frame = cvLoadImage("img.jpg",1), но содержимое frame = NULL? Share this post Link to post Share on other sites