C++ OpenCV';s CVWriteName(..)不执行任何操作

C++ OpenCV';s CVWriteName(..)不执行任何操作,c++,qt,video,opencv,C++,Qt,Video,Opencv,我花了几个小时试图用CvVideoWriter编写一个avi文件。我总是得到一个大小为5.54KB的文件,其中没有帧。我检查了CvVideoWriter是否不为空。我还尝试使用cvShowImage显示我的IplImage,它显示正确。我尝试了多种编解码器(DIVX、H264等等) 我发现,当VideoWriter定义如下时,该函数将帧保存在jpg文件中: CvVideoWriter* recorder = cvCreateVideoWriter("test0001.jpg", CV_FOURC

我花了几个小时试图用
CvVideoWriter
编写一个avi文件。我总是得到一个大小为5.54KB的文件,其中没有帧。我检查了
CvVideoWriter
是否不为空。我还尝试使用
cvShowImage
显示我的IplImage,它显示正确。我尝试了多种编解码器(DIVX、H264等等)

我发现,当VideoWriter定义如下时,该函数将帧保存在jpg文件中:

CvVideoWriter* recorder = cvCreateVideoWriter("test0001.jpg", CV_FOURCC('I', 'Y', 'U', 'V'), -1, Size(w,h), true);
这是我的节目:

IplImage* myIplFrame=...;
CvVideoWriter* recorder = cvCreateVideoWriter("test.avi", CV_FOURCC('I', 'Y', 'U', 'V'), 10, Size(w,h), true);

cvShowImage("test",myIplFrame); //showing image properly
cvWriteFrame(recorder, myIplFrame);
cvWaitKey(500); //not helping

cvReleaseVideoWriter(&recorder);

我做错了什么?

IYUV编解码器应该内置,以便videowriter始终可以创建这种类型的文件

您可以创建一个文件,因此权限是正确的

您是否有充分的理由使用旧的iplimage而不是cv标准格式?
这是我要检查的第一件事


另外,如果不显示图像,则无需使用waitkey()

IYUV编解码器应内置,以便videowriter始终可以创建这种类型的文件

您可以创建一个文件,因此权限是正确的

您是否有充分的理由使用旧的iplimage而不是cv标准格式?
这是我要检查的第一件事


另外,如果不显示图像,则无需使用waitkey()

关于这一点,我在SO上发现了另一个类似的线程,有人提到您应该使用MinGW编译,而不是我这样做,并在.pro文件(Qt)中包含了新的库和如下路径:

注意我是如何使用
opencv
文件夹中的库的;例如,在您使用CMake配置并生成源文件后,它就是包含源文件的文件夹

另一个提示是,你,读者,也有同样的问题,如果cv::Mat没有被识别,或者你得到了一些奇怪的错误,例如simpleFree函数未定义(或者类似的,再也记不起来了)


希望能有所帮助。

关于这一点,我在SO上发现了另一个类似的线程,有人提到您应该使用MinGW进行编译,而不是使用MinGW。我这样做了,并在.pro文件(Qt)中包含了新的库和如下路径:

注意我是如何使用
opencv
文件夹中的库的;例如,在您使用CMake配置并生成源文件后,它就是包含源文件的文件夹

另一个提示是,你,读者,也有同样的问题,如果cv::Mat没有被识别,或者你得到了一些奇怪的错误,例如simpleFree函数未定义(或者类似的,再也记不起来了)


希望能有所帮助。

我刚刚发现我必须用MinGW重新编译OpenCV,并从那里使用库。我还使用了更新的格式,如cv::Mat和更新的函数,它现在正在工作(刚刚发现):@LightnessRacesinOrbit-这是一组关于下一步尝试的建议,对于有相同问题的人也很有用。我刚刚发现我必须用MinGW重新编译OpenCV,并从那里使用库。我还使用了更新的格式,如cv::Mat和更新的函数,它现在正在工作(刚刚发现):@LightnessRacesinOrbit-这是一组关于下一步尝试的建议,对有相同问题的人也很有用
INCLUDEPATH += C:\OpenCV-2.3.1\mingwBuild\install\include

LIBS += -LC:\\OpenCV-2.3.1\\opencv\\build\\x86\\mingw\\lib \
    -lopencv_core231 \
    -lopencv_highgui231