Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
#1

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

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

Добрый день. Начал изучать 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2015, 14:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибки при запуске проекта с OpenCV (C++):

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

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

Ошибка при запуске пустого проекта - C++
При запуске пустого проекта выдает ошибку.

MPI: error(3) при запуске проекта - C++
Здравствуйте. Возникла проблема с MPI. Установлено VS 2010, Microsoft HPC Pack 2008. Настраивал в соответствии с этим материалом:...

Ошибка при запуске проекта: error: no match for ‘operator>>’ - C++
В NetBeans создал проект: Добавлено через 1 минуту #include <iostream> #include <string> using namespace std; int main()...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
tigerKR
Заблокирован
06.10.2015, 14:24 #2
тут вопрос всё ли правильно подключил,
мы когда делали первый раз, то в самом начале чтоб запустить якойто готовый пример - вылазили десятки ошибок ...
0
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
06.10.2015, 14:24 #3
Цитата Сообщение от Cooller51190 Посмотреть сообщение
char* filename = argc == 2 ? argv[1] : "Image0.jpg";
Что с картинкой? Есть в текущей папке Image0.jpg?
0
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
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
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
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
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
06.10.2015, 15:26  [ТС] #6
Про папки Release догадался положил. С VS всё равно ошибка остаётся
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
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
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
06.10.2015, 15:37  [ТС] #8
в VS сборку делаю релиз, положил уже файл во все папки. Ошибка остаётся. Но зато хоть через exe после компиляции всё ок.
0
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
06.10.2015, 15:43  [ТС] #9
Вот скрины ошибок при релизе и дебаге
0
Миниатюры
Ошибки при запуске проекта с OpenCV   Ошибки при запуске проекта с OpenCV  
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
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
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
06.10.2015, 20:14  [ТС] #11
Вставил. Ошибки нет, но Программа "[20728] ConsoleApplication1.exe" завершилась с кодом -1 (0xffffffff). Видимо по какой то причине не видит картинку....
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
06.10.2015, 21:53 #12
Цитата Сообщение от Cooller51190 Посмотреть сообщение
Вставил. Ошибки нет, но Программа "[20728] ConsoleApplication1.exe" завершилась с кодом -1 (0xffffffff). Видимо по какой то причине не видит картинку....
пройдитесь пошагово по программе (F10) и скажите на каком месте вылетает
0
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
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
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
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
Cooller51190
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 78
07.10.2015, 12:00  [ТС] #15
Это я так понимаю вставить сразу после получения параметра картинки? Перед её получением?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2015, 12:00
Привет! Вот еще темы с ответами:

Как исправить ошибки при компиляции проекта? - C++
Недавно набросал достаточно много классов, для проекта. Но ошибок компиляции получилось почему то ну очень много. И я не понимаю как их...

Ошибки при запуске code blocks - C++
Здравствуйте, я установил Code blocks (галочки при установке не снимал, ничего не трогал), отключал антивирус. При запуске программы выдает...

При первом запуске нового проекта HelloWorld в IDE CLion возникает ошибка - C++
Добрый день! Установил IDE CLion. Установил компилятор. Первая загрузка с проектом HelloWorld. Выдает вот такое сообщение. Кто-нибудь...

Code::Blocks, ошибки при сборке проекта, использующего OpenGL - C++
Всем привет! У меня вот такие ошибки: ||=== Build: Debug in test6 (compiler: GNU GCC Compiler) ===| obj\Debug\test6Main.o||In...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.10.2015, 12:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru