David 0 Жалоба Опубликовано April 23, 2013 Здравствуйте! Столкнулся с проблемой - не работает прога , написанная в VS 2010 + OpenCV 2.44, выдает следующее: текст самой проги:// test.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <opencv\cv.h> #include <opencv\cxcore.h> #include <opencv\highgui.h> // maxInt - максимальная интенсивность cv::Mat TreugObrab(const cv::Mat &lVX, int maxInt) { // массив для инициализации исходной матрицы для интеррполяции в cv::resize int matrix[2][4] = {{1, 127, 128, 256}, {0, maxInt, maxInt, 0} }; // создаём исходную матрицу для интерполяции cv::Mat src(2, 4, CV_8U, matrix); // создаём матрицу для результата cv::Mat dst(2, 257, CV_8U); // производим интерполяцию методомо по молчанию cv::resize(src, dst, cv::Size(257, 2)); // формируем результирующую матрицу cv::Mat result(lVX.rows, lVX.cols, CV_8U); for(int i = 0; i < lVX.rows; i++) { for(int j = 0; j < lVX.cols; j++) { result.at<int>(i,j) = dst.at<int>(1, 1 + lVX.at<int>(i,j)); } } return result; } int _tmain(int argc, _TCHAR* argv[]) { // пример загрузки фоторграфии cv::Mat m = cv::imread("D:\my_photo.jpeg"); // отображение фотографии cv::imshow("image", m); cv::waitKey(0); return 0; } Исходники:Архив WinRAR.rar При запуске других проектов, также выдает ошибку - "Нарушение прав доступа при чтении" Помогите пожалуйста разобраться с этим и устранить эту ошибку. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано April 23, 2013 На первый взгляд - не хватает двойного слэша в пути к файлу. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
David 0 Жалоба Опубликовано April 23, 2013 Nuzhny,вставил двойной флэш - ситуация та же Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 23, 2013 .jpeg -> .jpg Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
David 0 Жалоба Опубликовано April 23, 2013 Smorodov, это тоже не помогло Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 23, 2013 А какие-то другие изображения читает? Просто явно проблема в невозможности прочитать файл. Я сталкивался иногда что OpenCV не может прочитать какое то изображение из-за разных нестандартных расширений формата. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
David 0 Жалоба Опубликовано April 23, 2013 Smorodov, нет , вообще не читает! Пробовал запустить прогу Моя ссылка - также менял расширения, ставил слэшы, перепрописывал пути к библиотекам - ошибка всё равно осталась. Консоль и форма изображения запускаются, но само изображение не загружается. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 23, 2013 А если вначале namedWindow("image"); поставить? Прогоните в отладчике, посмотрите размер матрицы m после загрузки изображения. Если imread не работает, то проблема, скорее всего в кривой сборке OpenCV. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
David 0 Жалоба Опубликовано April 23, 2013 namedWindow("image")- также не помогает if(*file==_T('\0')) { errno=EINVAL; return NULL; } -отладчик указывает на ошибку в этом месте Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 23, 2013 А обычным образом файл открывается? В смысле командой fopen или другой сишной стандартной. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
David 0 Жалоба Опубликовано April 23, 2013 через openFileDialog получается Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 23, 2013 Через openDialog не то, там Вы мышкой тыкаете. Файл попробуйте открыть как обычный файл, при помощи команды fopen и задать имя файла строкой. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано April 23, 2013 Если в отладчике зайти внутрь функции imread, то какое имя файла будет там внутри? P.S. Уверен, что битое. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
David 0 Жалоба Опубликовано April 23, 2013 Smorodov, через fopen не получается. Nuzhny, подскажите пожалуйста как в отладчике зайти внутрь ф-ии? вот что выдает отладчик: "test.exe": Загружено: "E:\ДИПЛОМ2013\test1\test\Release\test.exe", Символы загружены. "test.exe": Загружено: "C:\Windows\System32\ntdll.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\kernel32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\KernelBase.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "D:\Visual Studio\OpenCV\opencv\build\x86\vc10\bin\opencv_highgui244d.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\user32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\gdi32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\lpk.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\usp10.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvcrt.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\ole32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\rpcrt4.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\oleaut32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\advapi32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\sechost.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "D:\Visual Studio\OpenCV\opencv\build\x86\vc10\bin\opencv_core244d.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvcp100d.dll", Символы загружены. "test.exe": Загружено: "C:\Windows\System32\msvcr100d.dll", Символы загружены. "test.exe": Загружено: "C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.16661_none_ebfb56996c72aefc\comctl32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\avifil32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\winmm.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msacm32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvfw32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\shell32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\shlwapi.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\avicap32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\version.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvcr100.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvcp100.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\imm32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msctf.dll", Невозможно найти или открыть файл PDB Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Первый этап обработки исключения в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Необработанное исключение в "0x101637ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x68705f79". Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 23, 2013 Значит имя файла хреновое. В функцию зайти можно по F11. Ставим точку останова на нее запускаем в отладку, как остановится, жмете F11. Для справки: F10 - шаг без захода в функцию. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
David 0 Жалоба Опубликовано April 24, 2013 может быть переустановить VS? Обратите пожалуйста внимание , что выдает отладчик: "test.exe": Загружено: "E:\ДИПЛОМ2013\test1\test\Release\test.exe", Символы загружены. "test.exe": Загружено: "C:\Windows\System32\ntdll.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\kernel32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\KernelBase.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "D:\Visual Studio\OpenCV\opencv\build\x86\vc10\bin\opencv_highgui244d.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\user32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\gdi32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\lpk.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\usp10.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvcrt.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\ole32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\rpcrt4.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\oleaut32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\advapi32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\sechost.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "D:\Visual Studio\OpenCV\opencv\build\x86\vc10\bin\opencv_core244d.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvcp100d.dll", Символы загружены. "test.exe": Загружено: "C:\Windows\System32\msvcr100d.dll", Символы загружены. "test.exe": Загружено: "C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.16661_none_ebfb56996c72aefc\comctl32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\avifil32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\winmm.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msacm32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvfw32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\shell32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\shlwapi.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\avicap32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\version.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvcr100.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msvcp100.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\imm32.dll", Невозможно найти или открыть файл PDB "test.exe": Загружено: "C:\Windows\System32\msctf.dll", Невозможно найти или открыть файл PDB Первый этап обработки исключения в "0x508f37ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x706a2e32". Необработанное исключение в "0x508f37ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x706a2e32". Первый этап обработки исключения в "0x508f37ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x706a2e32". Необработанное исключение в "0x508f37ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x706a2e32". Первый этап обработки исключения в "0x508f37ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x706a2e32". Необработанное исключение в "0x508f37ff (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при чтении "0x706a2e32". Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 24, 2013 Не нужны эти PDB. Имеют значение только последние "...Нарушение прав доступа при чтении..". А они из-за того что файл не прочитался, а файл не прочитался потому что имя кривое, а почему имя кривое я не знаю. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано April 24, 2013 Отладчик говорит, что тебе надо собирать OpenCV с отладочными символами. Собери же её! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано April 25, 2013 по pdb всего лишь ворнинги. предлагаю поставить английскую студию(и навсегда забыть о русифицированной) и пересобрать opencv. может какие проблемы с юникодом\локалью в имени файла. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано April 25, 2013 по pdb всего лишь ворнинги. Что значит "всего лишь"? Студия говорит, что не может их найти, а значит их либо нет вообще, либо они собраны не с теми опциями. Теоретически может быть ситтуация, что они есть и правильные, а надо просто пути к ним указать. Но это вряд ли. Поэтому надо по-любому пересобрать OpenCV. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано April 25, 2013 не знаю подробностей в дебаге, но lib файлы вроде как можно и без pdb использовать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано April 25, 2013 Всё можно без pdb использовать. Они хранят в себе отладочные символы, без них никакая отладка невозможна. А с ними можно отлаживать даже упавшую у пользователя программу. То есть ты можешь скомпилировать программу с ними, отдать пользователю (без pdb), у него она упадёт, снять дамп при падении, забрать этот дамп себе на комп, запустить его (дамп) из-под студии с пользовательской версией программы, указать местоположение pdb и отлаживать. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано April 25, 2013 Что значит "всего лишь"? Студия говорит, что не может их найти, а значит их либо нет вообще, либо они собраны не с теми опциями. Теоретически может быть ситтуация, что они есть и правильные, а надо просто пути к ним указать. Но это вряд ли. Поэтому надо по-любому пересобрать OpenCV. PDB файлы - это всего лишь файлы содержащие дебажную информацию, без них максимум что не получится отладчиком зайти в opencv'шные библиотеки. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано April 25, 2013 PDB файлы - это всего лишь файлы содержащие дебажную информацию, без них максимум что не получится отладчиком зайти в opencv'шные библиотеки. Круто! Но ведь в этом же и проблема топикстартера: он не может "отладчиком зайти в opencv'шные библиотеки", чтобы узнать, в чём ошибка. Можно в дизассемблере поковыряться, но тут уже другой уровень квалификации нужен. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 25, 2013 Неплохой мануал по отладке в VS2010 для начала (в картинках): http://www.codeproject.com/Articles/79508/Mastering-Debugging-in-Visual-Studio-2010-A-Beginn Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах