У меня есть камера yuv.cv :: Исключение при ошибке памяти ошибка
преобразовать YUV в BGR (из-за использования OpenCV BGR), но я получаю исключение:
Необработанное исключение при 0x76c1a832 в test1.exe: Microsoft C++ исключение: резюме :: Exception в ячейке памяти 0x00baee60.
Как это исправить?
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <opencv2/opencv.hpp>
void main()
{
IplImage* image ;
CvCapture* capture=cvCaptureFromCAM(CV_CAP_ANY);
//cv::Mat input;
cv::Mat output;
cvNamedWindow("webcam",1);
cvGrabFrame(capture);
image = cvRetrieveFrame(capture);
cv::Mat input = cv::cvarrToMat(image);
cv::cvtColor(input,output,CV_YUV2BGR_YUY2);
imshow("webcam", output);
/*
while(1)
{
//get image from Camera
image = cvQueryFrame(capture);
//Iplimage to Mat
cv::Mat input = cv::cvarrToMat(image);
//YUV to RGB, CV_YUV2RGB_NV12 CV_YUV2BGR_NV12 CV_YUV2RGB_YV12 CV_YUV2BGR_YV12 CV_YUV2RGB_IYUV CV_YUV2BGR_IYUV CV_YUV2RGB_UYVY CV_YUV2BGR_UYVY
cv::cvtColor(input,output,CV_YUV2BGR_YUY2);
// Draw image
//cvShowImage("webcam", image);
imshow("webcam", output);
//key = cvWaitKey(30);
if(cvWaitKey(33)>=27)
break;
}
*/
cvReleaseCapture(&capture);
cvDestroyWindow("webcam");
}
Сделайте себе одолжение и используйте C++ API, соответствующий код можно найти по адресу http://docs.opencv.org/3.0-beta/modules/videoio/doc/reading_and_writing_video.html#videocapture – ZdaR
(1) Использовать интерфейс C++; (2) Используйте блок 'try-catch', чтобы поймать исключение и посмотреть, в чем проблема. Он имеет метод '.what()'. –
спасибо. после использования API C++ ошибка исчезает. –