Python读取YUV文件,并显示的方法


Posted in Python onDecember 04, 2018

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 相关文章推荐
PyCharm在win10的64位系统安装实例
Nov 26 Python
python实现机器人行走效果
Jan 29 Python
python实现Zabbix-API监控
Sep 17 Python
Django如何开发简单的查询接口详解
May 17 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
python多线程并发实例及其优化
Jun 27 Python
Python笔记之观察者模式
Nov 20 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
基于Python绘制子图及子图刻度的变换等的问题
May 23 Python
Python os和os.path模块详情
Apr 02 Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 #Python
用python代码将tiff图片存储到jpg的方法
Dec 04 #Python
浅谈python下tiff图像的读取和保存方法
Dec 04 #Python
对python3新增的byte类型详解
Dec 04 #Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 #Python
python 实现数字字符串左侧补零的方法
Dec 04 #Python
Python发送邮件功能示例【使用QQ邮箱】
Dec 04 #Python
You might like
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
Javascript对象Clone实例分析
2015/06/09 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
python 实现A*算法的示例代码
2018/08/13 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
妇科医生自荐信
2013/11/05 职场文书
工厂保洁员岗位职责
2013/12/04 职场文书
学校食品安全实施方案
2014/06/14 职场文书
班级标语大全
2014/06/21 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
经理聘任证明
2015/03/02 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
大学同学聚会感言
2015/07/30 职场文书
九不准学习心得体会
2016/01/23 职场文书