python转yuyv422到jpg

import cv2 as cv
import yuvio
import os
import cv2 as cv
import numpy as np#参考:https://pypi.org/project/yuvio/yuv_frame = yuvio.imread("my.yuv", 720, 640, 'yuyv422')y = yuv_frame.y
u = yuv_frame.u
v = yuv_frame.vcv.imshow('y',y)reshaped_y = y.reshape(720,640)
reshaped_u = u.reshape(720,320)
reshaped_v = v.reshape(720,320)img = "my.jpg"
outImg = "out.jpg"cv.imwrite(img, y)
im = cv.imread(img)
##截取图像高从25到479,宽从0到720
im = im[25:479,0:720]
cv.imwrite(outImg, im)
cv.waitkey(0)

参考:

YUV Colorspace

https://github.com/labradon/yuvio/blob/main/README.md

另外下面代码yuv420p的转换,来自于网上。

import os
import cv2 as cv
import numpy as np# 读取yuv420p的一帧文件,并转化为png图片
if __name__ == '__main__':filepath = 'test.yuv'binfile = open(filepath, 'rb')size = os.path.getsize(filepath)image_width = 720image_hight = 640image_y = [[0] * image_width for i in range(image_hight)]image_u = [[0] * image_width for i in range(image_hight)]image_v = [[0] * image_width for i in range(image_hight)]for r in range(image_hight):for c in range(image_width):image_y[r][c] = binfile.read(1)[0]Image_Y = np.array(image_y)for r in range(int(image_hight / 2)):for c in range(int(image_width / 2)):pixel = binfile.read(1)[0]image_u[2 * r + 0][2 * c + 0] = pixelimage_u[2 * r + 1][2 * c + 0] = pixelimage_u[2 * r + 0][2 * c + 1] = pixelimage_u[2 * r + 1][2 * c + 1] = pixelImage_U = np.array(image_u)for r in range(int(image_hight / 2)):for c in range(int(image_width / 2)):pixel = binfile.read(1)[0]image_v[2 * r + 0][2 * c + 0] = pixelimage_v[2 * r + 0][2 * c + 1] = pixelimage_v[2 * r + 1][2 * c + 0] = pixelimage_v[2 * r + 1][2 * c + 1] = pixelImage_V = np.array(image_v)binfile.close()compose = np.array([Image_Y, Image_V, Image_U]).transpose([1, 2, 0]).astype(np.uint8)#compose = np.array([Image_Y, Image_U, Image_V]).transpose([1, 2, 0]).astype(np.uint8)Image = cv.cvtColor(compose, cv.COLOR_YUV2RGB)#Image = cv.cvtColor(compose, cv.COLOR_YUV2BGR)cv.imwrite("one_frame_of_highway.yuv.png", Image)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/118107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker操作总结

Docker安装 安装CentOS 7 VirtualBox安装CentOS 7,网络设置为桥接网卡,确保虚拟机能访问外网,且宿主机与虚拟机能相互ping通 安装docker yum update -yyum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager -…

加上boot程序,FreeRTOS就跑不起来了

一、问题描述 bootloader跳转到APP时,app执行完初始化程序后死机 二、分析问题 第一步,执行app时死机死到哪里?通过DEBUG调试发现死到hardfault_handler()函数中,硬件错误,导致硬件错误的原因一般都是中断异常引起的。…

【python入门】异常、文件操作

【大家好,我是爱干饭的猿,本文重点介绍python入门的异常、文件操作。 后续会继续分享其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一下吧】 上一篇文章:《【python入门】函数&#xff…

Linux系统镜像备忘

阿里镜像源: ubuntu ubuntu-releases安装包下载_开源镜像站-阿里云 centos centos-stream安装包下载_开源镜像站-阿里云

李宇航

该篇文章仅用作能直接在百度搜索到我的csdn,进入我的主页,没有实际意义. 进入李宇航博客方法 通过百度搜索"李宇航" 链接: https://blog.csdn.net/llllyh812 1.电脑端进入方法 输入网址链接: https://blog.csdn.net/llllyh812 或者 进入csdn主页,搜索"李宇…

口袋参谋:实时监测竞争对手的流量来源!

​ 在竞争激烈的淘宝天猫上运营店铺,如果想快速了解竞争对手的销售情况。 则可以通过口袋参谋同类目竞店透视工具,来剖析对方的数据信息,全面了解竞争对手的营销策略。 口袋参谋【同类目竞店透视】功能: 支持一键透视任意竞品…

双指针解决数组问题(python)

1、快慢指针 快慢指针&#xff0c;常用于原地修改数组 删除有序数组中的重复项 def removeDup(nums):slow, fast 0, 1while fast < len(nums):if nums[slow] ! nums[fast]:slow 1nums[slow] nums[fast]fast 1return slow1# nums[:slow1]给定一个已排序的链表&#xff0…

redis的实际使用

Redis是一种内存数据库&#xff0c;常用于缓存、会话管理、消息队列等。在项目中合理使用Redis可以提高系统性能和可扩展性。以下是一些使用Redis的建议&#xff1a; 1. 缓存常用数据&#xff1a;将经常使用的数据缓存在Redis中&#xff0c;以减少数据库的读取次数&#xff0c…

Rockchip RK3399 - DRM crtc基础知识

一、LCD硬件原理 1.1 CRT介绍 CRT是阴极射线管(Cathode Ray Tube)的缩写,它是一种使用电子束在荧光屏上创建图像的显示设备。CRT显示器在过去很长一段时间内是主流的显示技术,现已被液晶显示屏或其他新兴技术所替代。 在CRT显示器中,扫描电子束从左到右、从上到下移动,照亮…

laravel 中 npm run 同时执行多个命令

在使用laravel 启动项目时 经常需要同时运行两个命令。 1.前端既是 npm run dev 2.后端php则是 php artisan serve 可以安装 使用 concurrently 进行并行启动 concurrently - npm npm install concurrently --save 之后修改 package.json 在 scripts 中增加 &#xff08;多条…

算法|每日一题|掷骰子等于目标和的方法数|动态规划

1155.掷骰子等于目标和的方法数 原题地址&#xff1a; 力扣每日一题&#xff1a;掷骰子等于目标和的方法数 这里有 n 个一样的骰子&#xff0c;每个骰子上都有 k 个面&#xff0c;分别标号为 1 到 k 。 给定三个整数 n , k 和 target &#xff0c;返回可能的方式(从总共 kn 种…

useLayoutEffect和useEffect的区别

使用方式 这两个函数的使用方式其实非常简单&#xff0c;他们都接受一个函数一个数组&#xff0c;只有在数组里面的值改变的情况下才会再次执行 effect。所以对于使用方式我就不过多介绍了&#xff0c;不清楚的可以先参考官网 。 差异 useEffect 是异步执行的&#xff0c;而…

一招解决“请在微信客户端中打开链接”

一招解决“请在微信客户端中打开链接”-遇见你与你分享 在浏览器访问网站&#xff0c;却提示“请在微信客户端打开链接”。虽然这个情况你可能从未遇到过&#xff0c;但对于爱折腾的小伙伴&#xff0c;确是一道拦路虎 其实解决办法很简单&#xff0c;就是新建一个UA&#xff1…

ubuntu vbox 5.2 资源 virtualbox-dkms

各种 linux 包 https://pkgs.org/search/?qpython3.6 配置 python 默认版本 查看已安装python $ u82:~/Py_demo$ ls /usr/bin/python* /usr/bin/python2 /usr/bin/python2.7 /usr/bin/python3 /usr/bin/python3.8设置默认版本 $ u82:~/Py_demo$ sudo update-alternatives…

产品使用说明书小程序开发制作方案

使用说明书小程序定位为一个用户友好、易于操作的指南工具。它旨在为用户提供清晰、简洁的设备使用说明&#xff0c;帮助他们更好地理解和使用各种智能设备。 一、使用说明书小程序可以在以下场景中使用&#xff1a; 购买新设备后&#xff0c;用户可以通过小程序快速了解设备的…

Ubuntu 22.04配置/etc/rc.local开机自启文件

1.查看系统版本 rootbogon-virtual-machine:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04 LTS Release: 22.04 Codename: jammy rootbogon-virtual-machine:~ 2. 解决 /etc/rc.local 开机启动问题 看rc-loc…

BP神经网络

BP神经网络 B P BP BP神经网络1.激活函数常用的激活函数 2.神经网络结构符号约定 3.损失函数回归问题分类问题 4.反向传播求解梯度矩阵梯度下降法反向传播公式推导&#xff08;四个基础等式&#xff09;等式一 输出层误差等式二 隐藏层误差等式三 参数变化率等式四 参数更新 反…

linux重置root密码

重启Linux系统主机并出现引导界面时&#xff0c;按下键盘上的e键进入内核编辑界面 然后再lvrhel/swap 后面加上 rd.break 然后按下ctrlx组合键运行修改后的内核程序,大约30s过后&#xff0c;系统会进入紧急救援模式 然后依次输入以下命令&#xff1a; mount -o remount,rw …

UI 自动化测试框架:PO模式+数据驱动

1. PO 设计模式简介 什么是 PO 模式&#xff1f; PO&#xff08;PageObject&#xff09;设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类&#xff0c;并以页面为单位来写测试用例&#xff0c;实现页面对象和测试用例的分离。 PO 模式的设计思想与…

进阶课4——随机森林

1.定义 随机森林是一种集成学习方法&#xff0c;它利用多棵树对样本进行训练并预测。 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器&#xff0c;每棵树都由随机选择的一部分特征进行训练和构建。通过多棵树的集成&#xff0c;可以增加模型的多样性和泛化能力。…