python 读取jpg文件是yuv_Python读取YUV文件,并显示的方法
今天小编就为大家分享一篇Python读取YUV文件,并显示的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Python读取YUV格式文件,并使用opencv显示的方法
opencv可以读取的图片类型比较多,但大多是比较常见的类型,比如".jpg"和".png",但它不能直接读取YUV格式的文件,需要通过python读取YUV文件,并进行相应的转换后,才能被opencv读取,并进行后续相应的处理.
话不多说,直接上程序。
import cv2
from numpy import *
import Image
screenLevels = 255.0
def yuv_import(filename,dims,numfrm,startfrm):
fp=open(filename,'rb')
blk_size = prod(dims) *3/2
fp.seek(blk_size*startfrm,0)
Y=[]
U=[]
V=[]
print dims[0]
print dims[1]
d00=dims[0]//2
d01=dims[1]//2
print d00
print d01
Yt=zeros((dims[0],dims[1]),uint8,'C')
Ut=zeros((d00,d01),uint8,'C')
Vt=zeros((d00,d01),uint8,'C')
for i in range(numfrm):
for m in range(dims[0]):
for n in range(dims[1]):
#print m,n
Yt[m,n]=ord(fp.read(1))
for m in range(d00):
for n in range(d01):
Ut[m,n]=ord(fp.read(1))
for m in range(d00):
for n in range(d01):
Vt[m,n]=ord(fp.read(1))
Y=Y+[Yt]
U=U+[Ut]
V=V+[Vt]
fp.close()
return (Y,U,V)
if __name__ == '__main__':
width=1280
height=720
data=yuv_import('test.yuv',(height,width),1,0)
YY=data[0][0]
cv2.imshow("sohow",YY)
cv2.waitKey(0)
如果YUV文件需要转换为PIL的image格式,那么只需在main函数中,进行稍微的处理。
YY=data[0][0]
im=Image.frombytes('L',(720,1280),YY.tostring())
另外,如果PIL的image想转换为opencv的mat格式,只需将PIL转换为矩阵的形式。
im_array = np.array(im)
# 也可以用 np.asarray(im) 区别是 np.array() 是深拷贝,np.asarray() 是浅拷贝
以上这篇Python读取YUV文件,并显示的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
python 读取jpg文件是yuv_Python读取YUV文件,并显示的方法相关推荐
- python控制台不能输入_python实现在控制台输入密码不显示的方法
本文实例讲述了python实现在控制台输入密码不显示的方法.分享给大家供大家参考.具体实现方法如下: import console; namespace console{ //控制台读取密码,并显示星 ...
- 如何把未压缩的.avi文件批量地转为.yuv文件(yuv420)?
clear clc cd('F:\qcifAvi');myFile = dir('*.avi'); % 无损压缩的.avi文件集合 for i = 1 : length(myFile) % qcifA ...
- Python 设置numpy不以科学计数法保存和显示的方法
np.set_printoptions(suppress=True) 设置numpy显示数据的精度 np.set_printoptions(precision=4) 保存为txt文件时,设置保留几位小 ...
- Win10电脑桌面此电脑、网络、回收站与用户的文件等系统自带图标取消显示的方法
在Windows10电脑中,一般桌面默认会显示如下所示的一些系统自带图标. 然而,在上述这些图标中,有一些我们可能相对而言使用的频率比较低,比如网络图标,以及上图中最上面的Administra ...
- python 16bit转8bit的工具_利用python读取YUV文件 转RGB 8bit/10bit通用
注:本文所指的YUV均为YUV420中的I420格式(最常见的一种),其他格式不能用以下的代码. 位深为8bit时,每个像素占用1字节,对应文件指针的fp.read(1): 位深为10bit时,每个像 ...
- Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息
Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息 目录
- python删除重复值所在的行数_使用python读取txt文件的内容,并删除重复的行数方法...
注意,本文代码是使用在txt文档上,同时txt文档中的内容每一行代表的是图片的名字. #coding:utf-8 import shutil readDir = "原文件绝对路经" ...
- python各种文件数据的读取
(持续更新中-) 文章目录 (持续更新中...) 0 常规方法open 0.1 读取时存在中文无法识别 0.2 写入,写入中文 1.读取excel文件 一)python读取: 2.读取csv文件 一) ...
- python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...
Python的json文件读取及解决中文乱码显示问题 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法.分享给大家供大家参考,具体如下: city.json文件的内容如下: ...
最新文章
- c++中字符与数值之间的转换函数(全网最全)
- 【编程之美】2.21 只考加法的面试题
- 如何利用DeepFM算法设计推荐系统
- 街头抓拍之一:酷似福克纳的老头
- css --- 圣杯布局
- 前端学习(2856):简单秒杀系统学习之定时器循环显示
- IIS 崩溃的后的感受
- mysql rr和rc_MySQL Transaction--RC和RR区别
- 阻塞非阻塞,同步异步四种I/O方式
- 白板机器学习笔记 P22-P27 PCA降维
- opencv-python人脸识别初探
- Java经典编程题50道之三十一
- Java并发环境下,先操作数据库还是先操作缓存?
- UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xae in position 53: illegal multibyte sequence
- python用小矩形标记数据点_Python – 在散点处绘制已知大小的矩形
- 向日葵Linux传文件,教您玩转Linux远程登录,如何用向日葵远程登录?
- cad批量选择相同块_在CAD中如何快速选择相同或类似的图形、图块?
- 拍拍贷第三届“魔镜杯”启动:中科院、北大NLP大牛都在这里等你!
- Python | pandas 计算每行的增长率与累计增长率
- 软件工程第一次阅读作业
热门文章
- 识别图片噪声干扰_射频相位噪声介绍
- 使用key 发smtp.sendgrid.net_手把手教你使用 iOS 13 效率神器 「快捷指令」
- 【java基础知识】修改字符串的编码格式
- windows修改右键菜单显示内容(非所有菜单适用)
- java 阻塞 直到完成_完成所有提交的任务后关闭Java执行程序而不会阻塞
- python export_django-import-export插件使用教程
- python语言如何软件搬家_python写程序-就像搬家把物品分类放在箱子里
- maple 2018 窗口关闭提示乱码_iPhone最废柴却无法关闭的俩功能,我终于屏蔽了!...
- 矩阵计算的理论与方法_钢筋焊接网片实际重量与理论重量相差多少以及计算方法...
- WARNING: IPv4 forwarding is disabled. Networking will not work.解决方法