今天小编就为大家分享一篇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文件,并显示的方法相关推荐

  1. python控制台不能输入_python实现在控制台输入密码不显示的方法

    本文实例讲述了python实现在控制台输入密码不显示的方法.分享给大家供大家参考.具体实现方法如下: import console; namespace console{ //控制台读取密码,并显示星 ...

  2. 如何把未压缩的.avi文件批量地转为.yuv文件(yuv420)?

    clear clc cd('F:\qcifAvi');myFile = dir('*.avi'); % 无损压缩的.avi文件集合 for i = 1 : length(myFile) % qcifA ...

  3. Python 设置numpy不以科学计数法保存和显示的方法

    np.set_printoptions(suppress=True) 设置numpy显示数据的精度 np.set_printoptions(precision=4) 保存为txt文件时,设置保留几位小 ...

  4. Win10电脑桌面此电脑、网络、回收站与用户的文件等系统自带图标取消显示的方法

      在Windows10电脑中,一般桌面默认会显示如下所示的一些系统自带图标.   然而,在上述这些图标中,有一些我们可能相对而言使用的频率比较低,比如网络图标,以及上图中最上面的Administra ...

  5. python 16bit转8bit的工具_利用python读取YUV文件 转RGB 8bit/10bit通用

    注:本文所指的YUV均为YUV420中的I420格式(最常见的一种),其他格式不能用以下的代码. 位深为8bit时,每个像素占用1字节,对应文件指针的fp.read(1): 位深为10bit时,每个像 ...

  6. Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息

    Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息 目录

  7. python删除重复值所在的行数_使用python读取txt文件的内容,并删除重复的行数方法...

    注意,本文代码是使用在txt文档上,同时txt文档中的内容每一行代表的是图片的名字. #coding:utf-8 import shutil readDir = "原文件绝对路经" ...

  8. python各种文件数据的读取

    (持续更新中-) 文章目录 (持续更新中...) 0 常规方法open 0.1 读取时存在中文无法识别 0.2 写入,写入中文 1.读取excel文件 一)python读取: 2.读取csv文件 一) ...

  9. python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...

    Python的json文件读取及解决中文乱码显示问题 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法.分享给大家供大家参考,具体如下: city.json文件的内容如下: ...

最新文章

  1. c++中字符与数值之间的转换函数(全网最全)
  2. 【编程之美】2.21 只考加法的面试题
  3. 如何利用DeepFM算法设计推荐系统
  4. 街头抓拍之一:酷似福克纳的老头
  5. css --- 圣杯布局
  6. 前端学习(2856):简单秒杀系统学习之定时器循环显示
  7. IIS 崩溃的后的感受
  8. mysql rr和rc_MySQL Transaction--RC和RR区别
  9. 阻塞非阻塞,同步异步四种I/O方式
  10. 白板机器学习笔记 P22-P27 PCA降维
  11. opencv-python人脸识别初探
  12. Java经典编程题50道之三十一
  13. Java并发环境下,先操作数据库还是先操作缓存?
  14. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xae in position 53: illegal multibyte sequence
  15. python用小矩形标记数据点_Python – 在散点处绘制已知大小的矩形
  16. 向日葵Linux传文件,教您玩转Linux远程登录,如何用向日葵远程登录?
  17. cad批量选择相同块_在CAD中如何快速选择相同或类似的图形、图块?
  18. 拍拍贷第三届“魔镜杯”启动:中科院、北大NLP大牛都在这里等你!
  19. Python | pandas 计算每行的增长率与累计增长率
  20. 软件工程第一次阅读作业

热门文章

  1. 识别图片噪声干扰_射频相位噪声介绍
  2. 使用key 发smtp.sendgrid.net_手把手教你使用 iOS 13 效率神器 「快捷指令」
  3. 【java基础知识】修改字符串的编码格式
  4. windows修改右键菜单显示内容(非所有菜单适用)
  5. java 阻塞 直到完成_完成所有提交的任务后关闭Java执行程序而不会阻塞
  6. python export_django-import-export插件使用教程
  7. python语言如何软件搬家_python写程序-就像搬家把物品分类放在箱子里
  8. maple 2018 窗口关闭提示乱码_iPhone最废柴却无法关闭的俩功能,我终于屏蔽了!...
  9. 矩阵计算的理论与方法_钢筋焊接网片实际重量与理论重量相差多少以及计算方法...
  10. WARNING: IPv4 forwarding is disabled. Networking will not work.解决方法