使用python分析同一幅图的rgb格式和yuv格式对应的三个通道的概率分布并计算各自的熵

该博客使用Python分析同一幅图像的RGB和YUV格式的三个通道概率分布,并计算各自的熵。RGB文件为256x256分辨率,YUV为4:2:0采样。实验结果显示,YUV格式的熵值较低,表明其压缩效果更好。
摘要由CSDN通过智能技术生成

要求

对一幅图的rgb格式文件和yuv格式文件分析三个通道的概率分布,并计算各自的熵。(编程实现)两个文件的分辨率均为256*256,yuv为4:2:0采样空间,存储格式为:rgb文件按每个像素BGR分量依次存放;YUV格式按照全部像素的Y数据块、U数据块和V数据块依次存放。

简介

我们在这里使用python进行编程,用到的库主要是numpy库处理数据,matplotlib库绘制图像,math库计算熵``

实现

首先是打开rgb文件,我试了下用matplotlib好像不太行,然后按照百度上直接用open打开,然后把数据转换为int类型。

# -*- coding:utf-8 -*-
import numpy as np

# 打开rgb文件
f = open('down.rgb', 'rb')
data = f.read()
f.close()
data = [int(x) for x in data]  # 把数据转换为int类型
data = np.array(data).reshape(256, 256, 3).astype(np.uint8)  # 得到b、g、r三个通道的数据,每个通道包含256*256个像素点
print(data)

得到数据
在这里插入图片描述得到一个三维数组,最里层包含三个数据分别对应每个像素点的b、g、r的值,外面两层即可以看作一个256*256的二维数组。

打开yuv文件
由于是4:2:0格式,我们得先读取前256256个点作为Y的像素点,中间128128个点作为U的像素点ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值