分析比较图像RGB格式和YUV格式的存储概率分布
实验思路
两个图片文件down.yuv和down.rgb均为二进制存储的图片文件,像素为256* 256。yuv为4:2:0格式,即1份y对应0.25份u和0.25份v,因此大小为256* 256* 1.5;rgb为每个像素按BGR格式存储信息,因此大小为256* 256* 3。
最开始考虑c++编程,但c++很难进行绘图操作,故最终选择python实现
代码
from multiprocessing import Pool
import numpy as np
import matplotlib.pyplot as plt
shape=256*256
def distribution(x):
p=[x.count(i)/len(x) for i in range(256)]
# e = sum(-i * np.log2(i) for i in p if i != 0)
return p
def entropy(p):
e = sum(-i * np.log2(i) for i in p if i != 0)
return e
if __name__ == '__main__':
with open(r'E:\Condense1\down.rgb','rb') as pic1:
data=np.fromstring(pic1.re