在OpenCV中,许多使用imEncode的JPG转换失败

在OpenCV中,许多使用imEncode的JPG转换失败,opencv,jpeg,codec,Opencv,Jpeg,Codec,为了一个特定的目的,我尝试使用OpenCV将AVI视频转换成一种移动JPEG格式。为此,我从源视频中读取图像,使用imEncode将其转换为JPEG,然后将这些JPEG图像写入目标视频 在数百帧之后,生成的JPEG图像的大小突然几乎翻了一番。以下是尺寸列表: 68045 68145 68139 67885 67521 67461 67537 67420 67578 67573 67577 67635 67700 67751 127800 127899 127508 127302 126990 1

为了一个特定的目的,我尝试使用OpenCV将AVI视频转换成一种移动JPEG格式。为此,我从源视频中读取图像,使用imEncode将其转换为JPEG,然后将这些JPEG图像写入目标视频

在数百帧之后,生成的JPEG图像的大小突然几乎翻了一番。以下是尺寸列表:

68045
68145
68139
67885
67521
67461
67537
67420
67578
67573
67577
67635
67700
67751
127800
127899
127508
127302
126990
126904
有人知道这是怎么回事吗

顺便说一下:我正在使用OpenCV.Net作为OpenCV的包装器

提前多谢,

保罗我找到了解决办法。如果我显式地将第三个参数输入imEncode(对于JPEG编码,这表示编码质量,范围从0到100),而不是使用默认值(95),那么问题就会消失。这可能是OpenCV.Net中的一个bug,但也可能是OpenCV本身的bug。

可能图像内容确实发生了变化?你能展示68000张实物图片和12500张实物图片的样本图片吗?对不起,米卡,由于视频中主题的隐私问题,无法展示。但是我检查了一下,大小变化前后的帧几乎相同,因此大小的巨大差异不是由场景的变化引起的。恐怕我在OpenCV中遇到了一个错误…你能试着将这些图像保存为.bmp并用irfanView、GIMP、Photoshop或其他工具将它们转换为jpeg格式,然后检查结果的大小吗?谢谢你的帮助,米卡,但我找到了解决方案。