当试图加载图像并复制其中的一部分或平滑时,一切正常,但是当我拍摄视频并尝试复制框架的一部分时,它会反转并旋转180度,是否有人知道为什么呢?
IplImage *scaled=cvCreateImage(sz,IPL_DEPTH_8U,3);
capture = cvCaptureFromFile( "C:\\New York.avi" );
IplImage *frame = cvQueryFrame( capture );
cvResize(frame,scaled,CV_INTER_LINEAR);
cvShowImage("123",scaled);
cvReleaseImage(&scaled);
答案 0 :(得分:2)
您需要匹配目标图片的深度和频道数才能使调整大小操作正常工作。现在,你正在假设这些价值观。
capture = cvCaptureFromFile("C:\\New York.avi");
IplImage* frame = cvQueryFrame(capture);
IplImage* scaled = cvCreateImage(sz, frame->depth, frame->nChannels);
cvResize(frame, scaled, CV_INTER_LINEAR);
cvShowImage("123", scaled);
cvWaitKey(0); // wait for a key press, and then
cvReleaseImage(&scaled);
我希望您使用的是最新版本的OpenCV。
修改强>:
在下面的评论中,您声明您使用的是 OpenCV b5a 。我刚刚发现提到这个版本的a message from 2006,这意味着你正在使用OpenCV的侏罗纪版本,这可能是问题的根源。
有一个显示how to use OpenCV with C++ Builder的页面,但如果您遇到问题,我建议您转到另一个编译器。
您所观察到的很可能是OpenCV这个古老版本的错误。