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 相关文章推荐
Python 字典dict使用介绍
Nov 30 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
Python简单删除列表中相同元素的方法示例
Jun 12 Python
python中使用iterrows()对dataframe进行遍历的实例
Jun 09 Python
python实现简单的单变量线性回归方法
Nov 08 Python
Python日期格式和字符串格式相互转换的方法
Feb 18 Python
Python3通过chmod修改目录或文件权限的方法示例
Jun 08 Python
python里的单引号和双引号的有什么作用
Jun 17 Python
Python Pivot table透视表使用方法解析
Sep 11 Python
详解python算法常用技巧与内置库
Oct 17 Python
Python txt文件如何转换成字典
Nov 03 Python
详解在OpenCV中如何使用图像像素
Mar 03 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
php过滤危险html代码
2008/08/18 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
React key值的作用和使用详解
2018/08/23 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
pandas 对group进行聚合的例子
2019/12/27 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
大学生咖啡店创业计划书
2014/01/21 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书
Python中for后接else的语法使用
2021/05/18 Python