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

Необработанное исключение

Recommended Posts

Здравствуйте! Столкнулся с проблемой - не работает прога , написанная в VS 2010 + OpenCV 2.44, выдает следующее:

post-6404-0-78589400-1366697666_thumb.pn

 

текст самой проги:

// 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

 

При запуске других проектов, также выдает ошибку - "Нарушение прав доступа при чтении"

 

Помогите пожалуйста разобраться с этим и устранить эту ошибку.

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


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

На первый взгляд - не хватает двойного слэша в пути к файлу.

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


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

.jpeg -> .jpg

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


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

А какие-то другие изображения читает? Просто явно проблема в невозможности прочитать файл.

Я сталкивался иногда что OpenCV не может прочитать какое то изображение из-за разных нестандартных расширений формата.

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


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

Smorodov, нет , вообще не читает! Пробовал запустить прогу Моя ссылка - также менял расширения, ставил слэшы, перепрописывал пути к библиотекам - ошибка всё равно осталась. Консоль и форма изображения запускаются, но само изображение не загружается.

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


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

А если вначале

namedWindow("image");

поставить?

Прогоните в отладчике, посмотрите размер матрицы m после загрузки изображения.

Если imread не работает, то проблема, скорее всего в кривой сборке OpenCV.

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


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

namedWindow("image")- также не помогает

if(*file==_T('\0'))

{

errno=EINVAL;

return NULL;

}

-отладчик указывает на ошибку в этом месте

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


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

А обычным образом файл открывается?

В смысле командой fopen или другой сишной стандартной.

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


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

Через openDialog не то, там Вы мышкой тыкаете.

Файл попробуйте открыть как обычный файл, при помощи команды fopen и задать имя файла строкой.

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


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

Если в отладчике зайти внутрь функции imread, то какое имя файла будет там внутри?

P.S. Уверен, что битое.

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


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

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".

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


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

Значит имя файла хреновое.

В функцию зайти можно по F11.

Ставим точку останова на нее запускаем в отладку, как остановится, жмете F11.

Для справки:

F10 - шаг без захода в функцию.

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


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

может быть переустановить 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".

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


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

Не нужны эти PDB.

Имеют значение только последние "...Нарушение прав доступа при чтении..".

А они из-за того что файл не прочитался, а файл не прочитался потому что имя кривое, а почему имя кривое я не знаю.

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


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

Отладчик говорит, что тебе надо собирать OpenCV с отладочными символами. Собери же её!

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


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

по pdb всего лишь ворнинги.

предлагаю поставить английскую студию(и навсегда забыть о русифицированной) и пересобрать opencv.

может какие проблемы с юникодом\локалью в имени файла.

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


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

по pdb всего лишь ворнинги.

Что значит "всего лишь"? Студия говорит, что не может их найти, а значит их либо нет вообще, либо они собраны не с теми опциями. Теоретически может быть ситтуация, что они есть и правильные, а надо просто пути к ним указать. Но это вряд ли. Поэтому надо по-любому пересобрать OpenCV.

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


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

не знаю подробностей в дебаге, но lib файлы вроде как можно и без pdb использовать.

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


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

Всё можно без pdb использовать. Они хранят в себе отладочные символы, без них никакая отладка невозможна. А с ними можно отлаживать даже упавшую у пользователя программу. То есть ты можешь скомпилировать программу с ними, отдать пользователю (без pdb), у него она упадёт, снять дамп при падении, забрать этот дамп себе на комп, запустить его (дамп) из-под студии с пользовательской версией программы, указать местоположение pdb и отлаживать.

  • Like 1

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


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

Что значит "всего лишь"? Студия говорит, что не может их найти, а значит их либо нет вообще, либо они собраны не с теми опциями. Теоретически может быть ситтуация, что они есть и правильные, а надо просто пути к ним указать. Но это вряд ли. Поэтому надо по-любому пересобрать OpenCV.

PDB файлы - это всего лишь файлы содержащие дебажную информацию, без них максимум что не получится отладчиком зайти в opencv'шные библиотеки.

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


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

PDB файлы - это всего лишь файлы содержащие дебажную информацию, без них максимум что не получится отладчиком зайти в opencv'шные библиотеки.

Круто! Но ведь в этом же и проблема топикстартера: он не может "отладчиком зайти в opencv'шные библиотеки", чтобы узнать, в чём ошибка. Можно в дизассемблере поковыряться, но тут уже другой уровень квалификации нужен.

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


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

Неплохой мануал по отладке в VS2010 для начала (в картинках):

http://www.codeproject.com/Articles/79508/Mastering-Debugging-in-Visual-Studio-2010-A-Beginn

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×