问题描述
我正在尝试压缩open-cv库捕获的图像帧。但是,在第一次迭代之后,压缩因子(diff_in_len / original_len)显着降低。为什么我会看到这种奇怪的行为?
压缩系数从84%降低到54%,然后稳定在〜40%
我首先要对框架进行酸洗,压缩,然后对其进行解压缩并解刺。我在任何迭代中都没有例外,这意味着压缩或初始帧没有任何问题,而且原始字节流长度在所有迭代中都完全相同。前2帧的压缩因子仍然比其他帧小。
while True:
check,frame=vc.read()
print("Frame: {}".format(frame_no))
bytestream = pickle.dumps(frame)
print("Original len: {}".format(len(bytestream)))
c_bytestream = zlib.compress(bytestream,6)
print("Compressed len: {}".format(len(c_bytestream)))
u_bytestream = zlib.decompress(c_bytestream)
compression_factor = ((len(bytestream)-len(c_bytestream))/len(bytestream))*100
print("Compression factor: {}".format(compression_factor))
try:
cv2.imshow('client',pickle.loads(u_bytestream))
print("displayed")
except Exception as e:
print(e)
cv2.waitKey(10)
frame_no+=1
print("++++++++++++++++++++++++=")
输出:
Frame: 0
Original len: 921764
Compressed len: 142641
Compression factor: 84.52521469703743
displayed
++++++++++++++++++++++++=
Frame: 1
Original len: 921764
Compressed len: 421162
Compression factor: 54.30912901783971
displayed
++++++++++++++++++++++++=
Frame: 2
Original len: 921764
Compressed len: 551544
Compression factor: 40.16429368037806
displayed
++++++++++++++++++++++++=
Frame: 3
Original len: 921764
Compressed len: 545085
Compression factor: 40.86501534015214
displayed
++++++++++++++++++++++++=
Frame: 4
Original len: 921764
Compressed len: 548948
Compression factor: 40.445927591010275
displayed
++++++++++++++++++++++++=
Frame: 5
Original len: 921764
Compressed len: 548948
Compression factor: 40.445927591010275
displayed
++++++++++++++++++++++++=
Frame: 6
Original len: 921764
Compressed len: 561018
Compression factor: 39.136481789264934
displayed
++++++++++++++++++++++++=
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)