当前位置: 首页 > news >正文

计算机视觉——Python OpenCV BGR转HSV

这里将介绍如何使用 OpenCV 与 Python 来作彩色影像转HSV(RGB to HSV 或 BGR to HSV),在写 Python 影像处理程序时常会用到 OpenCV cvtColor 作颜色空间转换的功能,接下来介绍怎么使用 Python 搭配 OpenCV 模块来进行 RGB/BGR 转 HSV 彩色转HSV空间。

HSV 简单介绍分别为:

色相(H):色彩的颜色名称,如红色、黄色等。

饱和度(S):色彩的纯度,越高色彩越纯,低则逐渐变灰,数值为0-100%。

明度(V):亮度,数值为0-100%。

示例. 彩色影像转HSV

以下示例程序是将 fruits.jpg 来作图片转HSV示范,将影像用 imread 读进来后,再使用 cvtColor 将影像从彩色转换成HSV。

使用 cv2.cvtColor 转换颜色空间时,第二个参数与HSV相关的有:

cv2.COLOR_BGR2HSV

cv2.COLOR_HSV2BGR

cv2.COLOR_RGB2HSV

cv2.COLOR_HSV2RGB

opencv 默认的排列方式为BGR,而不是RGB哦!

所以这边使用的是 cv2.COLOR_BGR2HSV

详细程序代码如下:

opencv-rgb-to-hsv.py

import cv2
image = cv2.imread('fruits.jpg')
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
cv2.imshow('Input', image)
cv2.imshow('Result', hsv)
cv2.waitKey(0)

结果如下图所示:
在这里插入图片描述
当然实际上使用时不会只是单纯RGB转换成HSV就结束了,通常会去针对HSV颜色区间去做后续的处理,请看下面的例子。

示例. 物体检测 - 找出绿色的物体

彩色转HSV常见的应用可能有物体检测,去背景处理(排除绿色的背景),

以下就来示范如何找出图中绿色的水果,类似的应用可能有找出草地的背景,

详细程序代码如下:

opencv-rgb-to-hsv2.py

import cv2
import numpy as np
image = cv2.imread('fruits.jpg')
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower_green = np.array([35, 43, 46])
upper_green = np.array([77, 255, 255])
mask = cv2.inRange(hsv, lower_green, upper_green)
res = cv2.bitwise_and(image, image, mask=mask)
cv2.imshow('Input', image)
cv2.imshow('Result', res)
cv2.waitKey(0)

结果如下图所示:
在这里插入图片描述

http://www.lryc.cn/news/335314.html

相关文章:

  • DC9 Debian和sql注入
  • Windows系统上运行appium连接iOS真机自动化测试
  • vue3使用jsQR解析二维码
  • 李廉洋:4.10黄金原油早间走势最新分析及策略。
  • Kotlin作用域函数:let、also、run、apply、with
  • 鸿蒙ArkUI开发学习:【渲染控制语法】
  • https的配置和使用(以腾讯云为例)
  • STC89C52学习笔记(七)
  • 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记16:蓝桥杯编程手册
  • doris2.0.7 安装
  • 智慧园区水电能源监控管理系统
  • Kafka基础/1
  • Jupyter Notebook中常见的快捷键
  • 《前端面试题》- JS基础 - call()、apply()、bind() 的区别
  • 开源软件技术社区方案
  • 【开源书籍】深入讲解内核网络、Kubernetes、ServiceMesh、容器等云原生相关技术。
  • 【C语言】“vid”Microsoft Visual Studio安装及应用(检验内存泄露)
  • Accuracy准确率,Precision精确率,Recall召回率,F1 score
  • 系统架构最佳实践 -- 智慧图书管理系统架构设计
  • 网络基础三——IP协议补充和Mac帧协议
  • 人工智能——深度学习
  • postgresql uuid
  • 【azure笔记 1】容器实例管理python sdk封装
  • Nestjs 中定义既可以捕获错误(Error)和又可以异常(Exception)的过滤器
  • GitHub 仓库 (repository) Branch - SSH clone URL - Clone in Desktop - Download ZIP
  • Training - 使用 WandB 配置 可视化 模型训练参数
  • N1922A是德科技N1922A功率传感器
  • 最简洁的Docker环境配置
  • Docker内更新Jenkins详细讲解
  • 基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图