作业1.2 利用python分析rgb和yuv文件三个通道的概率分布,并计算各自的熵

该博客介绍了使用Python分析RGB和YUV文件中各个通道的概率分布并计算熵的过程。通过对比,发现YUV文件的U、V通道概率分布更集中,熵更小,适合数据压缩。
摘要由CSDN通过智能技术生成

前言

  1. 本次实验需编程实现,C,C++,python都可,但python可利用的库更多,更方便实现,所以选择python实现更方便。
  2. 两个文件的分辨率均为256*256,yuv为4:2:0采样空间
  3. 存储格式为: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+
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值