roboforum.ru

Технический форум по робототехнике.

OpenCV и MSVS2008

OpenCV и MSVS2008

Сообщение РЭНТ » 02 июн 2009, 22:18

Привет народ!!!)
Начал осваивать OpenCV, понакочал кучу всяких мануалов, но как говорится без совета бывалых людей не обойтись)
Итак, в программировании я вроде не полный ноль, но и далеко не профи...
Решил откомпилить contours.c из сэмплов, вроде какие-то библиотеки понаподключал...вот только не уверен что правельные и туда :) В общем выдает вот такую ботву: Вылетает табличка: энэйбл ту старт программ путь к exe-шнику....и вот:
1>------ Build started: Project: Zrenie, Configuration: Debug Win32 ------
1>Linking...
1>contours.obj : error LNK2019: unresolved external symbol _cvShowImage referenced in function _on_trackbar
1>contours.obj : error LNK2019: unresolved external symbol _cvWaitKey referenced in function _main
1>contours.obj : error LNK2019: unresolved external symbol _cvCreateTrackbar referenced in function _main
1>contours.obj : error LNK2019: unresolved external symbol _cvNamedWindow referenced in function _main
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>D:\Code\Zrenie\Debug\Zrenie.exe : fatal error LNK1120: 5 unresolved externals
1>Build log was saved at "file://d:\Code\Zrenie\Zrenie\Debug\BuildLog.htm"
1>Zrenie - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped =========
Аватара пользователя
РЭНТ
 
Сообщения: 14
Зарегистрирован: 02 июн 2009, 21:56
Откуда: Воронеж
прог. языки: Pascal, C++, Max Scripting
ФИО: Артем Проскурин

Re: OpenCV и MSVS2008

Сообщение galex1981 » 02 июн 2009, 22:36

Это значит что компилятор не нашел какую то библиотеку, функции которой он перечисляет, смотри что за библиотека
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: OpenCV и MSVS2008

Сообщение РЭНТ » 02 июн 2009, 23:16

Ну насколько я понял эти функции в Highgui (Модуль для ввода/вывода изображений и видео, создания пользовательского интерфейса) и я вродь прописал ее и CV тоже...прописывал через:

project properties > Linker > General > Additional Library Directories

project properties > Linker > Input > Additional Dependencies

или напутал чего? :oops:
Аватара пользователя
РЭНТ
 
Сообщения: 14
Зарегистрирован: 02 июн 2009, 21:56
Откуда: Воронеж
прог. языки: Pascal, C++, Max Scripting
ФИО: Артем Проскурин

Re: OpenCV и MSVS2008

Сообщение galex1981 » 02 июн 2009, 23:50

Я обычно делаю так: если подключаю в проек сторонние библиотеки то смотрю чтоб были подключены и *.lib файлы, скорее всего который(е) у тебя не подключен(ы), если компилятор сам не определяет пути я их вручную в свойствах проекта прописываю.
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: OpenCV и MSVS2008

Сообщение =DeaD= » 03 июн 2009, 08:12

2galex1981: Вроде .lib - это для борланда, тут .dll ?

Предлагаю сначала просто попробовать все .dll-ки и .h-файлы кинуть в папку с проектом.

Еще может быть тема с нестабильной версией OpenCV, лучше брать 1.0, которую еще интел вёл.

Но похоже тут просто не может найти библиотеки.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: OpenCV и MSVS2008

Сообщение galex1981 » 03 июн 2009, 09:08

При компиляции Студия идет *.lib файлы, а потом при запуске уже *.dll
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: OpenCV и MSVS2008

Сообщение РЭНТ » 03 июн 2009, 18:43

Хех...ну вроде бы с все библиотеки подключил как это делается в VS2008 нашел здесь http://www.scribd.com/doc/13419607/Open ... s-20081010 Но теперь выдает вот такое:

1>------ Build started: Project: Zrenie, Configuration: Debug Win32 ------
1>Linking...
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>D:\Code\Zrenie\Debug\Zrenie.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://d:\Code\Zrenie\Zrenie\Debug\BuildLog.htm"
1>Zrenie - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Может посоветуете чего.... :)
Аватара пользователя
РЭНТ
 
Сообщения: 14
Зарегистрирован: 02 июн 2009, 21:56
Откуда: Воронеж
прог. языки: Pascal, C++, Max Scripting
ФИО: Артем Проскурин

Re: OpenCV и MSVS2008

Сообщение galex1981 » 03 июн 2009, 21:41

Такое ощущение, что у тебя реально проект MFC, а в свойствах проекта не MFC проект, или наоборот...
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: OpenCV и MSVS2008

Сообщение РЭНТ » 03 июн 2009, 21:56

Большое спасибо всем за советы!) Заработало!!!)Рад до безобразия)))

В целях упрощения жизни будущим граблянаступателям опишу весь процесс с самого начала, думаю кому-нибудь пригодится)

Итак, думаю говорить что, установка MS VS2008 и OpenCV обязательна, не нужно ) OpenCV версии 1.0 я установил в директорию C:\Program Files\OpenCV.

Затем открываем VS2008 лезем в Tools -> Options,в открывшемся окне выбираем Projects and Solutions -> VC++ Directories, далее справа во вкладке Show directories for выбираем Include files и добавляем следующие пути:

C:\Program Files\OpenCV\cv\include
C:\Program Files\OpenCV\cxcore\include
C:\Program Files\OpenCV\otherlibs\highgui
C:\Program Files\OpenCV\cvaux\include
C:\Program Files\OpenCV\ml\include
C:\Program Files\OpenCV\otherlibs\_graphics\include
C:\Program Files\OpenCV\otherlibs\_graphics\include\jasper
C:\Program Files\OpenCV\otherlibs\cvcam\include

Выбираем во вкладке Show directories файлы библиотек Library files и опять прописываем пути:

C:\Program Files\OpenCV\lib
C:\Program Files\OpenCV\otherlibs\_graphics\lib

Опять лезем во вкладку Show directories и выбираем Source files ну и снова…:

C:\Program Files\OpenCV\cv\src
C:\Program Files\OpenCV\cvaux\src
C:\Program Files\OpenCV\cxcore\src
C:\Program Files\OpenCV\otherlibs\highgui
C:\Program Files\OpenCV\otherlibs\_graphics\src
C:\Program Files\OpenCV\ml\src
C:\Program Files\OpenCV\otherlibs\cvcam\src\windows

Ну вот, с этим все) Теперь создаем новый проект File->New->Project… В появившемся окне выбираем Win32 Console Application в поле Name даем имя своему проекту и жмем OK. В появившемся окне переходим во вкладку Application Setting, убеждаемся что стоит галка Precompiled header это говорит о том, что к проекту будут добавлены заголовочные файлы, жмем Finish.

Далее нужно подключить к проекту файлы библиотек, для этого лезем в Project и выбираем самую нижнюю вкладку …название вашего проекта…Properties…Можно просто нажать Alt+F7).

В открывшемся окне слева выбираем Linker -> Input затем справа в пункте Additional Dependencies через пробел прописываем следующие файлы через пробел cxcore.lib cv.lib highgui.lib можно еще прописать ml.lib но я не прописывал. Далее, слева выбираем General и пишем справа в пункте Additional Library Directories вот такие пути: "C:\Program Files\OpenCV\bin";"C:\Program Files\OpenCV\lib". Все, жмем ОК)

Теперь осталось добавить код программы и откомпилить, я например добавил такой:

Код: Выделить всёРазвернуть
#include "stdafx.h"
#include "highgui.h"

int _tmain(int argc, _TCHAR* argv[])
{
   IplImage* img = cvLoadImage("D:\BlonD.jpg");
   cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
   cvShowImage("Example1",img);
   cvWaitKey(0);
   cvReleaseImage(&img);
   cvDestroyWindow("Example1");
   return 0;
}


Программа из книги OReilly Learning OpenCV загружает изображение из файла.

Ну!Приятной компиляции!)
Аватара пользователя
РЭНТ
 
Сообщения: 14
Зарегистрирован: 02 июн 2009, 21:56
Откуда: Воронеж
прог. языки: Pascal, C++, Max Scripting
ФИО: Артем Проскурин

Re: OpenCV и MSVS2008

Сообщение Bober-Maniac » 28 мар 2010, 23:44

Все сделал по инструкции, но при компиляции вылазиет ошибка "Приложению не удалось запуститься, поскольку cxcore100.dll не был найден. Повторная установка приложения может исправить эту проблему". Хотя этот файл лежит в
C:\Program Files\OpenCV\bin
Как это исправить?
Bober-Maniac
 
Сообщения: 2
Зарегистрирован: 28 мар 2010, 23:15

Re: OpenCV и MSVS2008

Сообщение Bober-Maniac » 28 мар 2010, 23:48

При компиляции вылазит ошибка "Приложению не удалось запуститься, поскольку cxcore100.dll не был найден. Повторная установка приложения может исправить эту проблему."
Bober-Maniac
 
Сообщения: 2
Зарегистрирован: 28 мар 2010, 23:15

Re: OpenCV и MSVS2008

Сообщение =DeaD= » 03 апр 2010, 15:02

Попробуйте скопировать в каталог проекта, бывает иногда еще и такой косяк.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: OpenCV и MSVS2008

Сообщение CapBuran » 01 июл 2011, 16:16

У меня такая ошибка была, когда не ту разрядность указал =)
CapBuran
 
Сообщения: 1
Зарегистрирован: 01 июл 2011, 16:13

Re: OpenCV и MSVS2008

Сообщение DreadlockEugene » 29 июл 2011, 22:38

Может кто-нибудь запишет туториал как подключить OpenCV (хоть какую-нибудь версию).. я уже полторы недели не могу ничего сделать
DreadlockEugene
 
Сообщения: 1
Зарегистрирован: 29 июл 2011, 22:34

Re: OpenCV и MSVS2008

Сообщение RootAdmin » 27 янв 2014, 16:22

Система - win7 64
С++ VS2008 express
OpenCV 2.4.8

Проблем с настройкой среды - нет. По крайней мере мне кажется. Во всяком случае изображение с камеры получаю.
Проблема с именами окон....
Код: Выделить всёРазвернуть
//#include <iostream>
#include "cv.h"
#include "opencv2/highgui/highgui.hpp"

using namespace cv;
using namespace std;


int main(int, char**)
{
    VideoCapture cap(0);
    if(!cap.isOpened()) return -1;

    Mat frame, edges;
   Mat image;

   std::cout << "Test_string: " << "Start" << std::endl;
   //namedWindow(Wname,1);
   //namedWindow("000000",1);
   cap >> frame; //Получим кадр
   namedWindow("abcdef",1); //Новое окно
   imshow("abcdef", frame);

   
   namedWindow("444444",1);//Новое окно
   cvMoveWindow( "XSQq444444", 1, 1 ); //Перемещаю окно. Влево вверх.
   
   for(;;)
    {
        if(waitKey(30) >= 0) break;
    }
    return 0;
}

Окна.jpg
Скрин с окнами.

Создаю namedWindow("abcdef",1); //Новое окно! Оно появляется, но имя - дополняется случайными символами. Такое впечатление что указатель неверный.
Пробую вывести в него картинку imshow("abcdef", frame); - создается новое окно, с другим именем.

Для теста открываю еще одно. С именем "444444". Пробую его переместить. Если делаю cvMoveWindow( "444444", 1, 1 ); - как оно и должно быть - не работает, а если cvMoveWindow( "XSQq444444", 1, 1 ); - перемещается...
ЧЯДНТ?
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

След.

Вернуться в Компьютерное зрение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4