当你想创建一个视频文件时,它的大小很重要。我想用 JPEG 格式保存彼此的不同帧,而不是全部帧,以减小我的新视频文件的大小。我使用了 Aforge.Net Framework,它很好地产生了差异的结果(使用差异类)。但是当我想将帧与前一帧合并以生成当前帧时,结果不是我需要的,请参见下面的示例:
这是背景框
这是当前帧
这是差异框架
获取差异的代码:
AForge.Imaging.Filters.Difference sb = new AForge.Imaging.Filters.Difference(bmpDest);
Bitmap result = sb.Apply(bmpSrc);
result.Save(string.Format(address, 10002), ImageFormat.Jpeg);
如您所知,当我将差异帧与背景帧合并时,必须生成当前帧,但这是生成帧: 源代码为:
AForge.Imaging.Filters.Merge mg = new AForge.Imaging.Filters.Merge(bmpSrc);
Bitmap results = mg.Apply(new Bitmap(string.Format(address, 10002)));
results.Save(string.Format(address, 1004), ImageFormat.Jpeg);
所以,问题很清楚。这些是屏幕捕获的,但是当我想使用此操作进行相机捕获时,结果也有很多问题。
我也使用 openCV 进行此操作,但在提到获取差异的指令中,首先我应该将帧转换为灰度图像,我也有合并图像的问题,比如 AForge。
最后我使用了我的算法,但差异图像的大小比原始图像大!
我该怎么做这个操作?请记住图像的大小非常重要,我想保存 JPEG 文件(用于压缩)。
先谢谢了...