virt 1 Жалоба Опубликовано March 3, 2011 Привет,еще раз всем.Кто нибудь не мог бы помочь найти ошибку в программе определения взмаха руки? NB.программа не сложная,код маленький.Все компилируется,но как только начинается захват с камеры-вылетает с ошибкой "Необработанное исключение в "0x7c812afb" в "detect_motion.exe": Исключение Microsoft C++: cv::Exception по адресу 0x0011eae8.." и в консоли пишет: OpenCV Error^Assertion failed(src.type()==CV_8UC1 || src.type() == CV_32FC1)in unknown function, file..\..\..\..\ocv\opencv\src\cvcorner.cpp line 254 Программа сделана на основе " Управляем презентацией взмахом руки" по ссылкеМоя ссылка Файл с программой прикреплен к теме.Использую visual2008detect_motion.rar Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано March 4, 2011 Всё просто: в функцию FoundMotion надо подавать одноканальное серое изображения, а ты подаёшь цветное. Текст ошибки об этом и говорит. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
virt 1 Жалоба Опубликовано March 4, 2011 Не могли бы подсказать как перевести картинку в соответствующие серое одноканальное изображение? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано March 5, 2011 Создаёшь его через cvCreateImage и копируешь из цветного через cvCvtColor Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 19, 2011 Закписываю вайлы бмп в видео файл. всё вроде хорошо, но после 2-3х минут нормальной записи вылетает Первый этап обработки исключения в "0x7553b727" в "kurs 8.exe": Исключение Microsoft C++: cv::Exception по адресу 0x001ee02c.. Вот код где вылтеат... public: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {//таймер записи cvWriteFrame(writer, img2); screen(); img1 = cvLoadImage("C:\\Test.bmp"); cvResize(img1, img2); if(Condition()){timer1->Enabled=false;timer3->Enabled=true;}; // остановка записи ESC } В чём говно? и как сиправить? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано December 19, 2011 Отладчиком пользоваться умеешь? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 19, 2011 нет Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 19, 2011 на вижуал студии вообще первый раз работаю... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано December 19, 2011 Поставь на строку cvWriteFrame(writer, img2); брекпоинт (F9) и иди по одной строке (F10). Попутно наводи мышку на все переменные и смотри их значения. Так ошибки и отлавливают. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 19, 2011 Спасибо! буду пользоваться. Но пока решил проблему методом тыка... изменил код на IplImage* img1 = cvLoadImage("C:\\Test.bmp"); cvResize(img1, img2); cvWriteFrame(writer, img2); screen(); cvReleaseImage(&img1); и вроде пока работает... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 21, 2011 Начало записи и захват первого кадра IplImage* img1 = cvLoadImage("C:\\Test.bmp"); CvSize size = cvSize(img1->width ,img1->height); img2 = cvCreateImage( size, img1->depth, img1->nChannels ); cvResize(img1, img2); try{ writer = cvCreateVideoWriter(filename, CV_FOURCC('X','V','I','D'), fps, size, 1); } catch(cv::Exception){ timer2->Enabled=false;//остановка таймера инициализации } Если кадр(окно программы большое то вылетает Первый этап обработки исключения в "0x7553b727" в "kurs 8.exe": Исключение Microsoft C++: cv::Exception по адресу 0x0040db24.. Первый этап обработки исключения типа "System.Runtime.InteropServices.SEHException" в приложении kurs 8.exe хоть я и пробую его обработать траем(хочу что бы при исключения прога сама остановила выполнение без ошибок) но ошибка всё равно вылетает. В чём может быть причина? Как правильно исключение написать? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах