cvResize on a video frame

cvResize on a video frame

本文关键字:frame video on cvResize      更新时间:2023-10-16

当尝试加载图像并复制它的一部分或平滑时,一切都很好,但是当我捕获视频并尝试复制帧的一部分时,它会变得反向并旋转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);

需要匹配目标图像的深度通道数,才能使resize操作工作。现在,您假设这些值

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。我刚刚发现一条2006年的消息提到了这个版本,这意味着你使用的是一个侏罗纪版本的OpenCV,这可能是问题的根源。

有一个页面显示如何使用OpenCV与c++ Builder,但如果你有问题,我建议你移动到另一个编译器。

你看到的很可能是这个旧版本的OpenCV的一个bug。