C++ 在视频帧上调整大小
当尝试加载图像并复制部分图像或平滑时,一切正常,但当我拍摄视频并尝试复制部分帧时,图像会反转并旋转180度,有人知道为什么吗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);
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时出现了一个错误。无论如何谢谢你!