Форум программистов, компьютерный форум, киберфорум
C++: OpenCV
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
1

Ошибки при запуске проекта с OpenCV

06.10.2015, 14:22. Показов 3496. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Начал изучать OpenCV и столкнулся вот с такой трудностью. Взял текст программы с http://robocraft.ru/ и при запуске возникла ошибка:Unhandled exception at at 0x75C0C42D in ConsoleApplication1.exe: Microsoft C++ exception: cv::Exception at memory location 0x0045FB24.
Поиски решения проблемы увы не дали результата. Помогите, у кого есть такая возможность.
Текст программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include "stdio.h"
#include "cv.h"
#include "highgui.h"
#include "stdlib.h"
#include "stdio.h"
 
IplImage* image = 0;
IplImage* src = 0;
 
int main(int argc, char* argv[])
{
        // имя картинки задаётся первым параметром
        char* filename = argc == 2 ? argv[1] : "Image0.jpg";
        // получаем картинку
        image = cvLoadImage(filename,1);
        // клонируем картинку 
        src = cvCloneImage(image);
 
        printf("[i] image: %s\n", filename);
        assert( src != 0 );
 
        // окно для отображения картинки
        cvNamedWindow("original",CV_WINDOW_AUTOSIZE);
 
        // показываем картинку
        cvShowImage("original",image);
 
        // выводим в консоль информацию о картинке
        printf( "[i] channels:  %d\n",        image->nChannels );
        printf( "[i] pixel depth: %d bits\n",   image->depth );
        printf( "[i] width:       %d pixels\n", image->width );
        printf( "[i] height:      %d pixels\n", image->height );
        printf( "[i] image size:  %d bytes\n",  image->imageSize );
        printf( "[i] width step:  %d bytes\n",  image->widthStep );
 
        // ждём нажатия клавиши
        cvWaitKey(0);
 
        // освобождаем ресурсы
        cvReleaseImage(& image);
        cvReleaseImage(&src);
        // удаляем окно
        cvDestroyWindow("original");
        return 0;
}
Добавлено через 20 минут
Моя система и версии приложений
Windows 7 x64, Visual studio 2012 x86 и OpenCV 2.4.11
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2015, 14:22
Ответы с готовыми решениями:

Ошибки при компиляции OpenCV проекта
Вообщем сделал как все было в инструкции. Добавил либы(скрины прилагаются). Но все равно не может...

Ошибки при запуске проекта
Добрый день, пытался написать программу, которая будет открывать окно и уже далее обрабатывать...

При запуске скомпилированного проекта Visual Studio 2010 возникает ошибка: В ходе построения произошли ошибки
Последние 7 листингов из книги не работают. Не могут они все быть с ошибками. Скорее всего что-то...

Ошибки при запуске проекта
Помогите пожалуйста! Неожиданно не стал запускаться проект, в чем может быть дело?вот эта ошибка:...

33
Заблокирован
06.10.2015, 14:24 2
тут вопрос всё ли правильно подключил,
мы когда делали первый раз, то в самом начале чтоб запустить якойто готовый пример - вылазили десятки ошибок ...
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
06.10.2015, 14:24 3
Цитата Сообщение от Cooller51190 Посмотреть сообщение
char* filename = argc == 2 ? argv[1] : "Image0.jpg";
Что с картинкой? Есть в текущей папке Image0.jpg?
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
06.10.2015, 14:43  [ТС] 4
Да, картинка находиться где и сам проект.
Эта программа запускалась без ошибок. (это к вопросу правильности подключения)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
 
int main( int argc, char** argv ) 
{
        // задаём высоту и ширину картинки
        int height = 620;
        int width = 440;
        // задаём точку для вывода текста
        CvPoint pt = cvPoint( height/4, width/2 );
        // Создаёи 8-битную, 3-канальную картинку
        IplImage* hw = cvCreateImage(cvSize(height, width), 8, 3);
        // заливаем картинку чёрным цветом
        cvSet(hw,cvScalar(0,0,0));
        // инициализация шрифта
        CvFont font;
        cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,1.0, 1.0, 0, 1, CV_AA);
        // используя шрифт выводим на картинку текст
        cvPutText(hw, "OpenCV Step By Step", pt, &font, CV_RGB(150, 0, 150) );
 
        // создаём окошко
        cvNamedWindow("Hello World", 0);
        // показываем картинку в созданном окне
        cvShowImage("Hello World", hw);
        // ждём нажатия клавиши
        cvWaitKey(0);
        
        // освобождаем ресурсы
        cvReleaseImage(&hw);
        cvDestroyWindow("Hello World");
        return 0;
}
Добавлено через 7 минут
Заметил такую особенность. Если открываю через exe файл проекта после компиляции, программа открывает изображение и показывает картинку, а через VS выдаёт такую ошибку.
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
06.10.2015, 15:16 5
пути запуска разные, попробуй картинку положить в папку с проектом или в подпапку совпадающую с именем проекта, но находящуюся в папке со всем проектом, или в папку сборочную(там где получается экзе файл или Debug или Release)

Добавлено через 1 минуту
а вообще вот так нннадо
C++
1
2
3
4
5
6
image = cvLoadImage(filename,1);
if( image == NULL)
{
std::cout << "Can't load an image\n";
return -1;
}
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
06.10.2015, 15:26  [ТС] 6
Про папки Release догадался положил. С VS всё равно ошибка остаётся
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
06.10.2015, 15:31 7
Цитата Сообщение от Cooller51190 Посмотреть сообщение
Про папки Release догадался положил
а в виже то сборку релиз делаете?
ну смотрите вот у вас я думаю примерно такая структура должно быть
/Projects/myOpenCvProject/myOpenCvProject/Debug
/Projects/myOpenCvProject/myOpenCvProject/Release
/Projects/myOpenCvProject/Debug
/Projects/myOpenCvProject/Release
попробуйте картинку положить
/Projects/myOpenCvProject/ сюда, не получится удалите её и положите
/Projects/myOpenCvProject/myOpenCvProject/ сюда, не получится удалите положите
/Projects/myOpenCvProject/Debug - если сборка дебаг, если релиз то соотв в соседнюю папку релиз и т.д
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
06.10.2015, 15:37  [ТС] 8
в VS сборку делаю релиз, положил уже файл во все папки. Ошибка остаётся. Но зато хоть через exe после компиляции всё ок.
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
06.10.2015, 15:43  [ТС] 9
Вот скрины ошибок при релизе и дебаге
Миниатюры
Ошибки при запуске проекта с OpenCV   Ошибки при запуске проекта с OpenCV  
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
06.10.2015, 15:59 10
Цитата Сообщение от Cooller51190 Посмотреть сообщение
C++
1
assert( src != 0 );
эм, а не наоборот ли надо?
C++
1
assert (src == 0)
Добавлено через 1 минуту
а нет я напутал сори

Добавлено через 1 минуту
C++
1
2
3
4
5
6
image = cvLoadImage(filename,1);
if( image == NULL)
{
std::cout << "Can't load an image\n";
return -1;
}
попробуйте все же вот это вставить
1
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
06.10.2015, 20:14  [ТС] 11
Вставил. Ошибки нет, но Программа "[20728] ConsoleApplication1.exe" завершилась с кодом -1 (0xffffffff). Видимо по какой то причине не видит картинку....
0
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
06.10.2015, 21:53 12
Цитата Сообщение от Cooller51190 Посмотреть сообщение
Вставил. Ошибки нет, но Программа "[20728] ConsoleApplication1.exe" завершилась с кодом -1 (0xffffffff). Видимо по какой то причине не видит картинку....
пройдитесь пошагово по программе (F10) и скажите на каком месте вылетает
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
07.10.2015, 11:02  [ТС] 13
Вылетела сразу на
C++
1
2
int main(int argc, char* argv[])
{
Добавлено через 5 минут
Ошибка получается при команде вывода изображения
C++
1
printf("[i] image: %s\n", filename);
если не вставлять
C++
1
2
3
4
5
6
image = cvLoadImage(filename,1);
if( image == NULL)
{
std::cout << "Can't load an image\n";
return -1;
}
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
07.10.2015, 11:37 14
давайте вот еще что проверим
C++
1
2
3
4
5
for(int i = 0; i < argc; i++)
{
printf("%d param = %s", i, argc[i]);
}
return 0;
сделайте этот вывод когда запускаете из вижы, и когда запускается из папки сами(когда сами запускаете вроде не падает, поэтому return можно убрать)
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
07.10.2015, 12:00  [ТС] 15
Это я так понимаю вставить сразу после получения параметра картинки? Перед её получением?
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
07.10.2015, 12:19 16
прям после
C++
1
2
main()
{
0
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
07.10.2015, 13:32  [ТС] 17
Ошибка
1 error C2109: для индекса требуется массив или указатель C:\Users\Admin\Documents\Visual Studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.cpp 15 1 ConsoleApplication1

2 IntelliSense: выражение должно иметь тип указателя на объект c:\Users\Admin\Documents\Visual Studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.cpp 16 37 ConsoleApplication1
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
07.10.2015, 14:04 18
Цитата Сообщение от aLarman Посмотреть сообщение
C++
1
printf("%d param = %s", i, argc[i]);
ну
C++
1
printf("%d param = %s", i, argv[i]);
уж думал догадаетесь если что то пойдет нетак
1
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 79
07.10.2015, 14:14  [ТС] 19
C++
1
printf("%d param = %s", 1, argv[1]);
выводит 1 param=null
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
07.10.2015, 14:23 20
Цитата Сообщение от Cooller51190 Посмотреть сообщение
выводит 1 param=null
когда через вижу запускаете?

Добавлено через 8 минут
Цитата Сообщение от Cooller51190 Посмотреть сообщение
C++
1
printf("%d param = %s", 1, argv[1]);
а 1 вместо i, это что бы подчеркнуть что именно при таком значении i такой вывод?
0
07.10.2015, 14:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2015, 14:23
Помогаю со студенческими работами здесь

Ошибки при запуске проекта с библиотекой Google Api
Здравствуйте. Столкнулся с проблемой. А именно когда использую Google Api в проекте, при запуске...

Ошибка при компиляции проекта с OpenCV
Не могу понять, почему у меня вылезла ошибка данная ошибка и как ее устранить? Необработанное...

Ошибка при запуске проекта
Доброго времени суток, спасибо что уделили время ^^ если есть возможность, не мог бы кто-нибудь...

Ошибка при запуске проекта
Dev -Ты видишь local.yml Com - no Dev - А он есть! Com - no

Ошибка при запуске проекта
Всем доброго дня. Ребят, подскажите пожалуйста, в чем косяк? Настраивал проект на django. getting...

Проблема при запуске проекта
2 недели назад делал курсовую работу, все было работало и было хорошо, решил сегодня просмотреть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru