C++ 在视频帧上调整大小

C++ 在视频帧上调整大小,c++,c,opencv,scale,C++,C,Opencv,Scale,当尝试加载图像并复制部分图像或平滑时,一切正常,但当我拍摄视频并尝试复制部分帧时,图像会反转并旋转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);

当尝试加载图像并复制部分图像或平滑时,一切正常,但当我拍摄视频并尝试复制部分帧时,图像会反转并旋转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);

您需要匹配目标图像的深度通道数,以使调整大小操作生效。现在,假设这些值

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。我刚刚发现它提到了这个版本,这意味着你使用的是jurassic版本的OpenCV,这可能是问题的根源

有一个页面显示,但如果您对此有问题,我建议您转到另一个编译器


您所观察到的很可能是这个古老版本的OpenCV的一个bug。

如果您共享您的代码,我们可能会帮助您。否则,我建议您使用搜索框搜索与您类似的问题。编辑您的问题并在此处插入代码!这里有很多类似的问题。例如:这个链接是不一样的,因为对于图像,一切都很好,但是对于视频,不,你知道,这个操作对于图像非常有效,但是对于视频,它会进行反转和旋转。你使用的是什么版本?在哪个平台上?我在Borland 2009中使用OpenCV_b5a,我不知道b5a有多旧。也许这就是问题所在?2.3版怎么样?你说得对,在VS2008中,2.3版一切正常!但在Borland中,当我尝试使用2.3时出现了一个错误。无论如何谢谢你!