ProgRoman 9 Жалоба Опубликовано April 21, 2011 Подскажите, что за ошибка и как исправить, начал работать в 10 студии и простейший код просто загрузки изображения выдаёт исключения.. #include <cv.h> #include <cxcore.h> #include <highgui.h> using namespace std; using namespace cv; int _tmain(int argc, _TCHAR* argv[]) { Mat im = imread("photo.jpg",CV_LOAD_IMAGE_COLOR); return 0; } в 2008 студии работает.. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TroyashkA 12 Жалоба Опубликовано April 22, 2011 Установка и настройка OpenCV под Visual Studio 2010 Затачиваем OpenCV под QT на Windows: Компиляция OpenCV под QT, создание OpenCV проекта на QT простейший код в самом низу) И наконец вот это Уроки по OpenCV от Чеширского Котэ А вообще поиск рулит, да и форум читать надо P.S. ошибки какие при построении ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано April 22, 2011 Mat im = imread("photo.jpg",CV_LOAD_IMAGE_COLOR); экзотика какая то. на матлаб вообще похоже. наверно надо Mat создать сначала. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TroyashkA 12 Жалоба Опубликовано April 22, 2011 Mat im = imread("photo.jpg",CV_LOAD_IMAGE_COLOR); экзотика какая то. на матлаб вообще похоже. наверно надо Mat создать сначала. Да нет, все норма, извратившись, можно и так сделать: cv::Mat matrix = cv::imread("gia.jpg", CV_LOAD_IMAGE_COLOR); IplImage *image = cvCreateImage(cvSize(matrix.cols, matrix.rows), 8, 3); image->imageData = (char*)matrix.data; cvShowImage("GIA", image); cvWaitKey(); p.s. путем дедукции и телепатии, можно предположить, что ошибка в том, что photo.jpg находится не там, где надо Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgRoman 9 Жалоба Опубликовано April 22, 2011 ошибка следующая Необработанное исключение в "0x004737ff (msvcr100d.dll)" в "testApp.exe": 0xC0000005: Нарушение прав доступа при чтении "0x6a2e3630". 77 строка fopen.c там if(*file==_T('\0')) { errno=EINVAL; return NULL; } /* open the stream */ вот то, что изображение не там я это тоже так думал..., но изображение у меня в исполняемой папке поэтому просто пишу имя рисунка и его расширение, ну как обычно подобный синтаксис для С всё ок IplImage *img1 = cvLoadImage("photo.jpg",CV_LOAD_IMAGE_COLOR); cvNamedWindow("Image:"); cvShowImage("Image:",img1); cvWaitKey(0); cvReleaseImage(&img1); cvDestroyWindow("Image:"); это Сишный синтаксис он всё нормально работает и в 8 и в 10 студии, но сами разработчики Opencv говорят, что начиная с версии 2.2 они более поддерживают С++ ну и рекомендуют использовать его а не сишный функции вот собственно, что меня и с подвигло на разбирание в немного отличающемся синтаксисе Mat im = imread("photo.jpg",CV_LOAD_IMAGE_COLOR); imshow("img:",im); waitKey(0); это уже С++-ный синтаксис, выигрыш в размере кода конечно очевиден, но у меня он только в 8 студии работает в 10 вообще ни в какаю, пробовал разные перегруженные конструкторы к примеру IplImage *img1 = cvLoadImage("photo.jpg",CV_LOAD_IMAGE_COLOR); Mat im(img1) но и это тоже оказалось не лучше всегда исключение 77 строка fopen.c Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 22, 2011 Народ в таких случаях переключается на Release. В Debug говорят С++ плохо работает. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TroyashkA 12 Жалоба Опубликовано April 22, 2011 ошибка следующая Необработанное исключение в "0x004737ff (msvcr100d.dll)" в "testApp.exe": 0xC0000005: Нарушение прав доступа при чтении "0x6a2e3630". 77 строка fopen.c там if(*file==_T('\0')) { errno=EINVAL; return NULL; } /* open the stream */ вот то, что изображение не там я это тоже так думал..., но изображение у меня в исполняемой папке поэтому просто пишу имя рисунка и его расширение, ну как обычно подобный синтаксис для С всё ок IplImage *img1 = cvLoadImage("photo.jpg",CV_LOAD_IMAGE_COLOR); cvNamedWindow("Image:"); cvShowImage("Image:",img1); cvWaitKey(0); cvReleaseImage(&img1); cvDestroyWindow("Image:"); это Сишный синтаксис он всё нормально работает и в 8 и в 10 студии, но сами разработчики Opencv говорят, что начиная с версии 2.2 они более поддерживают С++ ну и рекомендуют использовать его а не сишный функции вот собственно, что меня и с подвигло на разбирание в немного отличающемся синтаксисе Mat im = imread("photo.jpg",CV_LOAD_IMAGE_COLOR); imshow("img:",im); waitKey(0); это уже С++-ный синтаксис, выигрыш в размере кода конечно очевиден, но у меня он только в 8 студии работает в 10 вообще ни в какаю, пробовал разные перегруженные конструкторы к примеру IplImage *img1 = cvLoadImage("photo.jpg",CV_LOAD_IMAGE_COLOR); Mat im(img1) но и это тоже оказалось не лучше всегда исключение 77 строка fopen.c Ось: Windows 7 x64 Ultimate IDE: Visual Studio 2010 SP1 OpenCV: v2.2 Stable/Installer Сборка: Debug cv::Mat im = cv::imread("D:\\gia.jpg",CV_LOAD_IMAGE_COLOR); cv::imshow("img:", im); cv::waitKey(0); Работает без проблем Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgRoman 9 Жалоба Опубликовано April 26, 2011 Странно попробую OpenCV переустановить а то у меня такой код не работает ни в Windows 7 x64 Ultimate ни в XP вообщем я подумал может что-то при скачивании хотя странно... пока не ясно почему так... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах