Python 视频的色彩转换

news2024/9/28 9:29:07

这篇教学会介绍使用OpenCV 的cvtcolor() 方法,将视频的色彩模型从RGB 转换为灰阶、HLS、HSV...等。

因为程式中的OpenCV 会需要使用镜头或GPU,所以请使用本机环境( 参考:使用Python 虚拟环境) 或使用Anaconda Jupyter 进行实作( 参考:使用Anaconda ) ,并安装OpenCV 函式库( 参考:OpenCV函式库)。

色彩模型是什么?

色彩模型( Color model ) 是一种以数字来表示色彩的数学模型,例如在RGB 的色彩模型里,以(255,0,0) 表示红色,但在HSV 的色彩模型中,红色则是以(0,100,100 ) 来表示,用的色彩模型有:

RGB (红、绿、蓝)

RGB 颜色模型也称做三原色光模型,是一种「加色」模型,将红( Red )、绿( Green )、蓝( Blue ) 三原色的色光以不同的比例相加,混合产生各种色彩的光线通常表现方式会使用(255,255,255) 或十六进位FFFFFF 来表现

RGBA (红、绿、蓝、alpha )

RGBA 颜色模型由RGB 色彩模型和Alpha 通道组成。RGBA 代表红( Red )、绿( Green )、蓝( Blue ) 和Alpha 通道,alpha 通道为影像的不透明度参数,数值可以用百分比、整数或者使用0 到1 的实数表示。例如,若一个像素的Alpha 通道数值为0% 表示完全透明的,无法被看见,如果数值为100% 则是完全不透明

HSV (色相、饱和度、明度)、HSL (色相、饱和度、亮度)

HSL 和HSV 颜色模型都是一种将RGB 色彩模型中的点,转变在圆柱坐标系中的表示法。 HSL 是色相、饱和度、亮度( Hue、Saturation、Lightness ),HSV 是色相、饱和度、明度( Hue、Saturation、Value ),又称HSB ( Brightness )。

HSL 和HSV 模型都把颜色描述在圆柱坐标系内的点,这个圆柱的中心轴取值为自底部的黑色到顶部的白色而在它们中间的是灰色,绕这个轴的角度对应于「色相」 ,到这个轴的距离对应于「饱和度」,而沿着这个轴的高度对应于「亮度」、「色调」或「明度」

GRAY (灰阶)

灰阶是每个像素只有最暗黑色到最亮的白色的灰阶,灰阶影像在黑色与白色之间还有许多级的颜色深度,用于显示的灰阶影像,通常用每个采样像素8bits 的非线性尺度,内容可以包含256 种灰阶( 8bits 表示2 的8 次方= 256 )。

cvtcolor() 色彩转换

使用OpenCV 的cvtcolor() 方法,可以将转换影像色彩,使用方法如下:

cv2.cvtColor(img, code)
# img 来源视频
# code 要转换的色彩空间名称

下方的程式码执行后,会将来源的彩色图片,转换成灰阶视频。

import cv2
img = cv2.imread('meme.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 转换成灰阶视频
cv2.imwrite('oxxo', img)
cv2.waitKey(0)                               # 按下任意键停止
cv2.destroyAllWindows()

下方的程式码执行后,会将来源的彩色影片,转换成灰阶视频。

import cv2
cap = cv2.VideoCapture(0)
if not cap.isOpened():
    print("Cannot open camera")
    exit()
while True:
    ret, frame = cap.read()
    if not ret:
        print("Cannot receive frame")
        break
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  # 转换成灰阶视频
    cv2.imshow('oxxostudio', gray)
    if cv2.waitKey(1) == ord('q'):
        break      # 按下 q 键停止
cap.release()
cv2.destroyAllWindows()

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

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

相关文章

BMS电池管理系统 — 1 什么是BMS

目录 1 储能系统组成 1.1 储能电池结构 1.2 储能集装箱组成 2 BMS系统组成 3 BMS功能 3.1 SOC荷电状态估计 3.2 SOH估计 3.3 主动均衡与被动均衡 3.4 电池热管理 4 BMS架构 4.1 集中式BMS 4.2 分布式BMS 参考论文 1 储能系统组成 1.1 储能电池结构 电芯&#xf…

docker(六)--创建镜像

六、创建镜像 1.创建镜像两种方式 方式1: 更新镜像 docker commit 方式2:构建镜像 docker build 2.更新镜像 1)用法 docker commit -m“描述信息” -a作者 容器id或者容器名 镜像名:tag 2)步骤 ①根据镜像运行容器 ②进入容…

PHP将两张图片合成一张图片代码实例(源代码)

使用PHP将两张图片合成一张图片可以通过GD库来实现。下面是一个示例代码,展示如何将两张图片合成一张图片: 加载两张图片。获取每张图片的宽度和高度。创建一个新的空白图片,其宽度是两张图片宽度的和,高度是两张图片中较大的高度…

酒店民宿小程序:酒店民宿便利预订,提高收益!

在旅游业发展旺盛时期,酒店民宿也得到了快速发展。随着移动互联网的发展,人们逐渐在手机上预订酒店民宿,这给酒店民宿小程序的发展提供了用户基础,为大众出行带来了更多的便利。 酒店民宿小程序是一个基于微信平台的应用程序&…

PHP计件工资系统小程序源码

解锁高效管理新姿势!全面了解计件工资系统 🔥 开篇:为什么计件工资系统成为企业新宠? 在这个效率至上的时代,企业如何精准激励员工,提升生产力成为了一大挑战。计件工资系统应运而生,它以其公…

Python大数据分析——K近邻模型(KNN)

Python大数据分析——K近邻模型 数学部分模型思想模型步骤距离度量指标欧氏距离曼哈顿距离余弦相似度 K值选择 代码部分函数示例1——知识掌握程度示例2——预测发电量 数学部分 模型思想 如图所示,模型的本质就是寻找k个最近样本,然后基于最近样本做“…

qml 实现一个带动画的switch 按钮

一.效果图 》 二.qml 代码 import QtQuick 2.12 import QtQuick.Controls 2.12Switch {id: controlimplicitWidth: 42implicitHeight: 20indicator: Rectangle {id: bkRectangleanchors.fill: parentx: control.leftPaddingy: parent.height / 2 - height / 2radius: height …

C语言有哪些特点?

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的…

Linux系统日志管理服务和配置

文章目录 Linux系统日志服务rsyslog日志分类rsyslog相关文件/var/log/message重启失败分析 /var/log/secure自定义日志输出路径1.修改sshd_config配置文件2.修改rsyslog.conf3.重启服务 常见日志文件日志管理工具journalctl选项说明journalctl用法示例 日志分析实战host无法解析…

qt creator中右边的的类和对象如何显示出来

qt creator中右边的的类和对象如何显示出来? 解决方法: 鼠标右键,重置为默认布局。

未来互联网的新篇章:深度解析Web3技术

随着技术的不断演进,Web3正逐渐成为引领未来互联网发展的关键驱动力。本文将深入探讨Web3技术的核心概念、关键特征以及其对未来互联网生态的深远影响,旨在帮助读者全面理解和把握这一新兴技术的发展方向和潜力。 1. Web3的基本概念和演进 Web3并非简单…

【AI大模型】通义灵码的部署与使用

【AI大模型】通义灵码的部署与使用 目前已支持: JetBrains IDEsIDE 版本:IntelliJ IDEA、PyCharm、GoLand、WebStorm、Android Studio 等 2020.3 及以上操作系统:Windows 7 及以上、macOS、LinuxVisual Studio CodeIDE 版本:1.68.…

minio在redhat7.9上面的单节点单驱动离线安装(docker)

问题 最近需要在红帽上面离线安装minio,并且还是要离线安装到服务器中的Docker里面去。 检查服务器磁盘 # lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs xxxxsx-xxx-xxx…

软链接node_modules

公司项目很多微应用的子项目公用同一套模板,也就会使用同一个node_modules 1.先创建3个同样的项目,并安装一个其中的一个node_modules给他丢到外边 2.win r -------> cmd --------> ctrlshift enter(已管理员身份打开cmd) 3.在窗口分别执行以下代码…

【手撸RPC框架】zookeeper入门(安装+常用命令)

🐼作者简介:一名大三在校生🎋 空有想法,没有实践,难成大事 专栏前言:探索RPC框架的奥秘 简介:在现代软件开发中,随着微服务架构的普及,远程过程调用(RPC&…

Mybatis左连接的实现方式

在使用 MyBatis Plus 进行数据库操作时,我们有时需要从多个表中获取数据。这篇文章将介绍如何在 MyBatis Plus 中实现左连接查询。我们将以两个表格为例,一个是部门领导表 (system_dept_leader),另一个是用户表 (system_user),并演…

tk 对文本设置下划线

import tkinter as tkdef underline_text():# 获取当前选中的文本范围selected_text text_widget.tag_ranges(tk.SEL)if selected_text:# 如果有文本被选中tag_name "underline"# 检查选中文本是否已经有下划线if text_widget.tag_names(selected_text[0]):if &quo…

Qt | 绘制直线与 QLineF 类

点击上方"蓝字"关注我们 01、绘制直线 02、Qline和QLineF 【1】QLine 是整型版本,成员函数较少,QLineF 是精度更高的浮点型版本,本文以 QLineF 类 进行讲解。 QLineF 类提供了一个二维向量,使用 QLineF 类绘制直线可以利用该类中的成员函数方便 的对线条的属…

【EIScopus稳检索-高录用】第五届大数据与社会科学国际学术会议(ICBDSS 2024)

大会官网:www.icbdss.org 大会时间:2024年8月16-18日 大会地点:中国-上海 接受/拒稿通知:投稿后1-2周内 收录检索:EI,Scopus *所有参会者现场均可获取参会证明,会议通知(邀请函)&…

vscode里最好用的A股量化神器

shares vscode 插件A 股量化交易系统后台开发语言 Go/Python gmsec算法使用:pytorchK 线标注中意榜黄金上穿全链路量化,行业板块分析,直接贴图。欢迎体验 源码地址: GitHub - xxjwxc/shares: A-share quantitative system. A股量…