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迭代器实例简析
Sep 25 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
Python pymongo模块常用操作分析
Sep 01 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
python实现一个函数版的名片管理系统过程解析
Aug 27 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
python批量处理txt文件的实例代码
Jan 13 Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
python 利用百度API识别图片文字(多线程版)
Dec 14 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
第八节--访问方式
2006/11/16 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
php查看网页源代码的方法
2015/03/13 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
Django如何配置mysql数据库
2018/05/04 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
印尼网上商店:Alfacart.com
2019/03/11 全球购物
.net面试题
2015/12/22 面试题
信息技术专业个人自我评价
2013/12/11 职场文书
财务人员担保书
2014/05/13 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
社区矫正工作方案
2014/06/04 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
信用卡工资证明范本
2015/06/19 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python