文章目录
前言
- 本次实验需编程实现,C,C++,python都可,但python可利用的库更多,更方便实现,所以选择python实现更方便。
- 两个文件的分辨率均为256*256,yuv为4:2:0采样空间
- 存储格式为:rgb文件按每个像素BGR分量依次存放;YUV格式按照全部像素的Y数据块、U数据块和V数据块依次存放
实验内容
对已有的down.rgb和down.yuv文件,分别分析三个通道的概率分布,并计算各自的熵。(编程实现)
rgb文件格式与大小
yuv文件格式与大小
实验步骤
RGB文件的处理
导入库
import numpy as np #矩阵库
import matplotlib.pyplot as plt #画图库
import cv2 as cv #图像读写库
import math #数据处理库
读取RGB文件
#读取RGB文件
#前面必须加r,避免转义字符
f = open(r"C:\Users\孟建成\Desktop\数据压缩\down.rgb", "rb")
data = f.read()
f.close()
data = [int(x) for x in data]
# 图像尺寸是需要预先知道的
data = np.array(data).reshape((256, 256, 3)).astype(np.uint8)
cv.imshow("data", data)
cv.waitKey()
分离出B,G,R通道
#B,G,R通道的提取
data_B=[]
data_G=[]
data_R=[]
for i in range(1, 256*256+1): # 文件大小为256*256*3
data_B.append(data[(i-1)*3])
data_G.append(data[(i-1)*3+