图像截取
代码也很简单,主要是滑动截取图像里面的内容,以一个16000x4320得图像为例,如果想生成4096x3840的图像,则有多种策略进行生成,比如
(1)只横向移动,每次10pixel
(2)横向纵向都移动,横纵每次各10pixel
(3)…等
本次只用到了最简单的横向移动,代码如下
int xxx__main()
{
Mat out(Size(4096, 3840), 1);
Mat src = imread("D:/testImg/lunwen/m_v1/v1.png", 1);
int w = src.cols - 4096;
int start = 0;
int i = 0;
int out_cnt = 30;
for (start = 0; start <= w; start+= 10) {
out = src(Rect(start, 0,4096,3840));
imwrite("D:/testImg/lunwen/m_v1/out" + to_string(i++) + ".png", out);
if (i >= out_cnt) break;
}
return 0;
}
图像合成
利用ffmpeg将图像进行合成得到yuv原始图像,代码如下:
ffmpeg.exe -f image2 -i out%%d.png -pix_fmt nv12 v_roi2_3200x2160.yuv
其次,还可以生成gif预览下效果,代码如下
ffmpeg -i out%d.jpeg -r 60 out.gif