我编写了下面的代码,它试图保存一张图片并数百个,最后用下面的编解码器 MP42(MPEG4-V2)将它们全部抓取到一个视频中
#include <stdAfx.h>
#include <iostream>
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int n=0;
char a;
int main(int, char** argv)
{
Mat image= imread("C:\\Users\\Metin\\Desktop\\images.jpg");
Mat newimage;
VideoWriter vide ("Hopdedik.avi",CV_FOURCC('M','P','4','2'),30.0,image.size());
vide.open("Hopdedik.avi",CV_FOURCC('M','P','4','2'),30.0,image.size());
for(int n=0; n<100;n++){
cout<<n<<'\n';
std::string s= to_string(static_cast<long long>(n));
image.copyTo(newimage);
putText(newimage,s,Point(100,40),cv::FONT_HERSHEY_COMPLEX,2,cv::COLORMAP_COOL,2,2,false);
imshow("asd",newimage);
if(!vide.isOpened())cout<<"can not opened";
vide.write(newimage);
waitKey(10);
}
vide.release();
return 0;
}
我开始在发布模式下调试并将 .exe 文件复制到 Virtualbox Win7-64 位。在我放置必要的 .dll 文件后,exe 可以正常工作,但代码无法正确创建视频。
我尝试安装以下两个编解码器: http ://www.fourcc.org/downloads/angel-potion-mpeg-4--8/ 和 Indeo,即:http ://www.afreecodec.com/codec-by -code/iv45-160.html
但它没有用。