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

Problem with W7 and VS2010

Recommended Posts

Скачал Opencv 2.0 (и в придачу 2.1), + симэйкер (cmake)

Стоит Win7 + VS2010, как выяснилось у 2010 версии - VC++ Directories, находится в свойствах сборки, что придает туманности VS2010...таким образом получается подключать библиотеки (opencv) придется каждый раз при создании при создании нового проекта ?

При сборке проекта all_build VS2010 выдает ряд ошибок:

Error 8 error C2039: 'back_inserter' : is not a member of 'std' C:\OpenCV2.0\src\cvaux\cvhog.cpp 852

Error 1 error C3861: 'back_inserter': identifier not found C:\OpenCV2.0\src\cv\cvmodelest.cpp 510

Error 2 error C3861: 'back_inserter': identifier not found C:\OpenCV2.0\src\cv\cvmodelest.cpp 511

Error 9 error C3861: 'back_inserter': identifier not found C:\OpenCV2.0\src\cvaux\cvhog.cpp 852

Error 3 error LNK1181: cannot open input file '..\..\lib\Release\cv200.lib' C:\OpenCV2.0\src\highgui\LINK

Error 4 error LNK1181: cannot open input file '..\..\lib\Release\cv200.lib' C:\OpenCV2.0\apps\haartraining\LINK

Error 5 error LNK1181: cannot open input file '..\..\lib\Release\cv200.lib' C:\OpenCV2.0\apps\haartraining\LINK

Error 6 error LNK1181: cannot open input file '..\..\lib\Release\cv200.lib' C:\OpenCV2.0\apps\traincascade\LINK

Error 7 error LNK1181: cannot open input file '..\..\lib\Release\cv200.lib' C:\OpenCV2.0\apps\haartraining\LINK

Error 10 error LNK1181: cannot open input file '..\..\lib\Release\cv200.lib' C:\OpenCV2.0\tests\cv\LINK

=) вопрос мировой, как быть дальше?

С этим разобрался....

хм, попробывал еще один вариант установки - http://opencv.willowgarage.com/wiki/Visual...2B_VS2010_CMake

но когда компилирую появляется вар

error LNK1181: cannot open input file 'cv210d.lib' C:\Users\ТФ\documents\visual studio 2010\Projects\OpenCV_begin\OpenCV_begin\LINK

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, я версию 2.1 компилировал как раз на такой конфигурации. Всё нормально.

back_inserter - это вообще из стандартной stl библиотеки.

Сдаётся мне, что ты неправильно настроил пути для инклудов. Пути к OpenCV должны быть в самом конце списка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Ну, я версию 2.1 компилировал как раз на такой конфигурации. Всё нормально.

back_inserter - это вообще из стандартной stl библиотеки.

Сдаётся мне, что ты неправильно настроил пути для инклудов. Пути к OpenCV должны быть в самом конце списка.

хм, попробывал еще один вариант установки - http://opencv.willowgarage.com/wiki/Visual...2B_VS2010_CMake

но когда компилирую пример появляется вар

error LNK1181: cannot open input file 'cv210d.lib' C:\Users\ТФ\documents\visual studio 2010\Projects\OpenCV_begin\OpenCV_begin\LINK

)))емое , эти проблемы раздражают уже охото начать экспериментировать с OpenCV...

help me =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хах, вот задачка...

И с предыдущей проблемой я справился, но увыв и ах))) появилась новая...

Системная ошибка: на компьтере отсутствует cxcore210d.dll

хотя он присутствует в папке C:\Program Files (x86)\OpenCV-2.1.0\build\bin\Debug\cxcore210d.dll

+ ps: в каком режиме надо было осуществлять сборку opencv - debug или release ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кинь cxcore210d.dll в папку к своему exe.

debug или release выбирается в зависимости от твоих потребностей. В большинстве случаев нужен release. Если ты хочешь в отладчике посмотреть, что происходит внутри OpenCV, то используй debug (но при этом будет тормозить).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Кинь cxcore210d.dll в папку к своему exe.

the problem is solved!!!!!!!

Ура - пол суток и все готово))

debug или release выбирается в зависимости от твоих потребностей. В большинстве случаев нужен release. Если ты хочешь в отладчике посмотреть, что происходит внутри OpenCV, то используй debug (но при этом будет тормозить).

Это я понимаю. Просто под релизом каким-то боком не собирался проект. А под Debug верно сказали - тормозила сборка.

Спасибо, за ответы))) Сижу не нарадуюсь библиотечками)))))

+ps: при компиляции заметил это ->

2> Compiling...

2> xerbla.c

:D кто разрбатывал эти библиотеки? :lol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Доброго времени суток, проблем с обработкой изображениями нет , но при запуске листинга уроков working with video (learning opencv), происходит следующее

-> компиляция успешна, при запуске появляется ошибка об отсутствии файла msvcr90d.dll (msvcr90.dll), их я скачал отправил куда надо, но я вижу новую ошибку при запуске приложения post-1228-1283705416_thumb.jpg

как поступить в данной ситуации

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В свойствах проека C++ -> Code Generation поставь для release использовать "Multi-threaded", а в debug - "Multi-threaded debug"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В свойствах проека C++ -> Code Generation поставь для release использовать "Multi-threaded", а в debug - "Multi-threaded debug"

хм, не помогло.

может с msvcr90d.dll (msvcr90.dll) что-то не то...эти библиотеки нужно копировать только в windows/system ?? далеее никаких действий??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
хм, не помогло.

может с msvcr90d.dll (msvcr90.dll) что-то не то...

Попробуйте скачать и установить MSVCR с сайта микростофта, и установить при помощи установщика. После этого нужна перезагрузка.

Вот по этой ссылке он вроде лежит: http://www.microsoft.com/downloads/details...;displaylang=en

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
хм, не помогло.

может с msvcr90d.dll (msvcr90.dll) что-то не то...эти библиотеки нужно копировать только в windows/system ?? далеее никаких действий??

Должно помочь. msvcr90d.dll - это отладочная Microsoft visual C rut-time library. Если ты установишь требуемые опции, то она влинкуется в твоё приложение и msvcr90d.dll будет не нужна. Возможно, что тебе также понадобится перекомпилировать OpenCV с соответствующими опциями.

Ну или поставляй с программой инсталлятор, ссылку на который дал Smorodov. Многие так делают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Должно помочь. msvcr90d.dll - это отладочная Microsoft visual C rut-time library. Если ты установишь требуемые опции, то она влинкуется в твоё приложение и msvcr90d.dll будет не нужна.

немного не ясно какие именно опции установить, если не трудно поясните. и как так что msvcr90d.dll больше не будет нужен :unsure:

Попробуйте скачать и установить MSVCR с сайта микростофта, и установить при помощи установщика. После этого нужна перезагрузка.

Вот по этой ссылке он вроде лежит: http://www.microsoft.com/downloads/details...;displaylang=en

никакого эффекта это не оказало, а жаль ))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
немного не ясно какие именно опции установить, если не трудно поясните. и как так что msvcr90d.dll больше не будет нужен :unsure:

никакого эффекта это не оказало, а жаль ))))

Один выход - строить Release конфигурацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Один выход - строить Release конфигурацию.

опять... ))) ок, я попробую.

надоело уже к соседу бегать с .txt-шными файлами :unsure:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
опять... ))) ок, я попробую.

надоело уже к соседу бегать с .txt-шными файлами :unsure:

+ стоп, а чем может помочь release config.??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
+ стоп, а чем может помочь release config.??

Какие то баги были у людей с дебаг конфигурацией. Где то есть на форуме. После сборки релизом проблемы исчезли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
немного не ясно какие именно опции установить, если не трудно поясните. и как так что msvcr90d.dll больше не будет нужен :unsure:

Что значит "какие опции"? Я же писал: "В свойствах проека C++ -> Code Generation поставь для release использовать "Multi-threaded", а в debug - "Multi-threaded debug"

После выбери release, скомпилируй и иди к соседу проверять. Debug конфигурация нужна только для отладки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Какие то баги были у людей с дебаг конфигурацией. Где то есть на форуме. После сборки релизом проблемы исчезли.

:lol: лучше некуда!!! все успешно прошло, ошибок с файлами как не видать теперь ошибки в коде !!!

Unhandled exception at 0x00905a4d in opencv_video.exe: 0xC0000005: Access violation.

очень интересно, т.к захват с видео-cam работает, а чтение из файла нет... хот путь указываю я верно, да и ошибка вроде как не с этим связана... :unsure:

Что значит "какие опции"? Я же писал: "В свойствах проека C++ -> Code Generation поставь для release использовать "Multi-threaded", а в debug - "Multi-threaded debug"

После выбери release, скомпилируй и иди к соседу проверять. Debug конфигурация нужна только для отладки.

по поводу этих опций я уже отписывался))), а у соседа все - ок, у него vs2008 и с первого раза все я поставил, а на моем ноуте никак...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
:lol: лучше некуда!!! все успешно прошло, ошибок с файлами как не видать теперь ошибки в коде !!!

Unhandled exception at 0x00905a4d in opencv_video.exe: 0xC0000005: Access violation.

очень интересно, т.к захват с видео-cam работает, а чтение из файла нет... хот путь указываю я верно, да и ошибка вроде как не с этим связана... :unsure:

по поводу этих опций я уже отписывался))), а у соседа все - ок, у него vs2008 и с первого раза все я поставил, а на моем ноуте никак...

на исходник бы взглянуть, может чего обнаружится...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
на исходник бы взглянуть, может чего обнаружится...

простите, проболемы с нетом.

код из книги "learning opencv" по загрузке видео из файла в окно. похоже не фурычит сама функция cvCreateFileCapture(const char* file)

только я прописываю путь к этому файлу ( char* file = "my.avi" ; CvCapture *cap = cvCreateFileCapture(file); //примерно так )

+попробывал еще применение этой фунции, не работает ...

завтра напишу код полностью.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
простите, проболемы с нетом.

код из книги "learning opencv" по загрузке видео из файла в окно. похоже не фурычит сама функция cvCreateFileCapture(const char* file)

только я прописываю путь к этому файлу ( char* file = "my.avi" ; CvCapture *cap = cvCreateFileCapture(file); //примерно так )

+попробывал еще применение этой фунции, не работает ...

завтра напишу код полностью.

Тут можно предложить:

1) установить кодеки (файл может не открываться из за отсутствия требуемого кодека).

2) если файл лежит не в папке с программой (что маловероятно :unsure: ), кинуть его туда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Тут можно предложить:

1) установить кодеки (файл может не открываться из за отсутствия требуемого кодека).

2) если файл лежит не в папке с программой (что маловероятно :lol: ), кинуть его туда.

1) у второго варианта вероятность ноль ))) :unsure:

2) требуемые кодеки... какие именно, у меня стоит "k-lite codekc pack" and "k-lite codekc pack x64"

+ еще один код не работает

int main(int argc, char* argv[])

{

	CvCapture* cap = 0;

	cap = cvCreateCameraCapture(0);


	//cvCreateFileCapture(argv[1]);

	//assert(cap != NULL);

	//CvCapture* cap = NULL;

	//cap = cvCreateFileCapture(argv[1]);

	//if (!cap) return -1;*/


        IplImage* img = cvQueryFrame(cap);

	cvShowImage("new", img);

	double fps = cvGetCaptureProperty(cap, CV_CAP_PROP_FPS);

	CvSize size = cvSize(

		(int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH),

		(int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT)

		);

	CvVideoWriter *write = cvCreateVideoWriter("new.avi", CV_FOURCC('M','J','P','G'), fps, size);

// после этой строки срабатывает -> Unhandled exception at 0x00905a4d in opencv_write_cam.exe: 0xC0000005: Access violation.


	IplImage *logImg = cvCreateImage(size, IPL_DEPTH_8U, 3);


	while ((img = cvQueryFrame(cap)) != NULL)

	{

		cvLogPolar(img, logImg, cvPoint2D32f(img->width/2, img->height/2), 40, CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS);

		cvWriteFrame(write, logImg);

	}

	cvReleaseVideoWriter(&write);

	cvReleaseImage(&logImg);

	cvReleaseCapture(&cap);

	return 0;

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1) у второго варианта вероятность ноль ))) :unsure:

2) требуемые кодеки... какие именно, у меня стоит "k-lite codekc pack" and "k-lite codekc pack x64"

+ еще один код не работает

int main(int argc, char* argv[])

{

CvCapture* cap = 0;

cap = cvCreateCameraCapture(0);

//cvCreateFileCapture(argv[1]);

//assert(cap != NULL);

//CvCapture* cap = NULL;

//cap = cvCreateFileCapture(argv[1]);

//if (!cap) return -1;*/

IplImage* img = cvQueryFrame(cap);

cvShowImage("new", img);

double fps = cvGetCaptureProperty(cap, CV_CAP_PROP_FPS);

CvSize size = cvSize(

(int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH),

(int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT)

);

CvVideoWriter *write = cvCreateVideoWriter("new.avi", CV_FOURCC('M','J','P','G'), fps, size);

// после этой строки срабатывает -> Unhandled exception at 0x00905a4d in opencv_write_cam.exe: 0xC0000005: Access violation.

IplImage *logImg = cvCreateImage(size, IPL_DEPTH_8U, 3);

while ((img = cvQueryFrame(cap)) != NULL)

{

cvLogPolar(img, logImg, cvPoint2D32f(img->width/2, img->height/2), 40, CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS);

cvWriteFrame(write, logImg);

}

cvReleaseVideoWriter(&write);

cvReleaseImage(&logImg);

cvReleaseCapture(&cap);

return 0;

}

У меня такое работает (пример есть на форуме в теме про фильтр Кальмана (трекинг шайбы) ):

double fps = cvGetCaptureProperty (video,CV_CAP_PROP_FPS);
CvSize size = cvSize((int)cvGetCaptureProperty(video, CV_CAP_PROP_FRAME_WIDTH),(int)cvGetCaptureProperty( video, CV_CAP_PROP_FRAME_HEIGHT));
writer = cvCreateVideoWriter(outfile,CV_FOURCC('D','I','V','X'),fps,size,1);[/code]

То же самое что у Вас, только кодек другой.

Есть еще вариант:

задать fps жестко, у меня как то было, что она была равнв нулю, и поставить вместо кодека -1, он дожен все у Вас спросить при запуске.

fps=30;

writer = cvCreateVideoWriter("out.avi",-1,fps,wsize,0);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
При сборке проекта all_build VS2010 выдает ряд ошибок:

Error 8 error C2039: 'back_inserter' : is not a member of 'std' C:\OpenCV2.0\src\cvaux\cvhog.cpp 852

Error 1 error C3861: 'back_inserter': identifier not found C:\OpenCV2.0\src\cv\cvmodelest.cpp 510

Error 2 error C3861: 'back_inserter': identifier not found C:\OpenCV2.0\src\cv\cvmodelest.cpp 511

Error 9 error C3861: 'back_inserter': identifier not found C:\OpenCV2.0\src\cvaux\cvhog.cpp 852

Ну, лучше поздно, чем никогда :) Чтобы избавиться от этой ошибки, надо в эти два файла добавить

 #include <iterator>

Хотя мне и непонятно, зачем му..., э-э-э, редискам из Майкрософт было делать подобное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Играет ли роль разрядность процессора...

Я конечно понимаю что там написанно x32....

А то у меня х64

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×