颜色空间转换

HSV简介

HSV是一个常用于颜色识别的模型,相比BGR更易区分颜色。H表示色调(Hue),S表示饱和度(Saturation),V表示明度(Value)。
OpenCV中色调H范围为[0,179],饱和度S是[0,255],明度V是[0,255]。虽然H的理论数值是0°~360°,但8位图像像素点的最大值是255,所以OpenCV中除以了2,某些软件可能使用不同的尺度表示,所以同其他软件混用时,记得归一化。

opencv中颜色空间转换

cv.cvtColor()用来进行颜色模型转换,参数1是要转换的图片,参数2是转换模式。
BGR -> Gray
cv.cvtColor(img, cv.COLOR_BGR2GRAY)
BGR -> HSV
cv.cvtColor(img, cv.COLOR_BGR2HSV)
其它情况请举一反三

颜色转换本质

颜色转换其实是数学运算,如灰度化最常用的是:
gray = R * 0.299 + G * 0.587 + B * 0.114

视频中特定颜色物体追踪

HSV是一个常用于颜色识别的模型,相比BGR更易区分颜色,转换模式用COLOR_BGR2HSV表示。

算法流程

  1. 捕获视频中的一帧
  2. 从BGR转换到HSV
  3. 提取蓝色范围的物体
  4. 只显示蓝色物体

代码实现

import cv2 as cv
import numpy as np capture = cv.VideoCapture(0)# 蓝色的范围,不同光照条件下不一样,可灵活调整
lower_blue = np.array([100, 110, 110])
upper_blue = np.array([130, 255, 255])while(True):# 1.捕获视频中的一帧ret, frame = capture.read()# 2.从BGR转换到HSVhsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)# 3.inRange():介于lower/upper之间的为白色,其余黑色mask = cv.inRange(hsv, lower_blue, upper_blue)# 4.只保留原图中的蓝色部分res = cv.bitwise_and(frame, frame, mask=mask)cv.imshow('frame', frame)cv.imshow('mask', mask)cv.imshow('res', res)if cv.waitKey(1) == ord('q'):break

实验结果(res)

如何得到蓝色的HSV的上下限lower和upper范围

blue = np.uint8([[[255, 0, 0]]])
hsv_blue = cv2.cvtColor(blue, cv2.COLOR_BGR2HSV)
print(hsv_blue)  # [[[120 255 255]]]

opencv 图像颜色空间转换和特定颜色物体追踪相关推荐

  1. 图像颜色空间转换—— Python 实现

    介绍 在介绍颜色空间转换之前,先来介绍一下什么是颜色空间. 颜色空间指的是组织颜色的特定方式.我们知道,一种颜色可以由 红.绿.蓝 三种颜色组合出来,这里的 红.绿.蓝 三原色就是一种颜色模型.而这种 ...

  2. OpenCV图像旋转,指定填充背景颜色边界颜色

    OpenCV图像旋转,指定填充背景颜色边界颜色 OpenCV与图像旋转有关的函数: (1)warpAffine函数 void cv::warpAffine ( InputArray  src,     ...

  3. Opencv实战 | 用摄像头自动化跟踪特定颜色物体

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:新机器视觉 1. 导语 在之前的某个教程里,我们探讨了如 ...

  4. Opencv 图像深度+转换深度

    1. opencv 图像深度 图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像 ...

  5. cv_bridge用于ROS图像和OpenCV图像的转换

    ROS是机器人领域中比较受到关注的一种系统,它的应用比较方便而且有许多的工具比如传感器驱动包可以直接使用.但是ROS对于传感器数据有自己的格式和规范.而在OpenCV中,图像是以Mat矩阵的形式存储的 ...

  6. python 颜色空间转换_python opencv入门 颜色空间转换(9)

    内容来自OpenCV-Python Tutorials 自己翻译整理 目标 学习如何将RGB转换为灰度图,或者RGB转换为HSV 写个程序从一副图像获取某个固定颜色的物体 学习函数cv2.cvtCol ...

  7. 图像颜色空间转换-CSC

    由于从事数字图像处理工作,常常要做颜色空间(如RGB.YUV.YCbCr.HSI).色域(BT.601.BT.709.BT.2020)的转换.之前一直没有弄明白YUV和YCbCr的差异,也没有深究.来 ...

  8. 图像颜色空间转换--RGB to Lαβ

    Lαβ 空间是作者在文章<color transfer between images>中于2001年提出来的,该空间相比于RGB空间的优点是三通道相关性很小,缺点是计算量稍大,RGB转到L ...

  9. Python+OpenCV教程5:颜色空间转换 追踪视频中特定颜色的物体 消除票据中的红色印章

    目标 颜色空间转换,如BGR↔Gray,BGR↔HSV等 追踪视频中特定颜色的物体 OpenCV函数:cv2.cvtColor(),cv2.inRange() 消除票据中的红色印章 教程 颜色空间转换 ...

最新文章

  1. RHEL7切换Firewall为iptables
  2. 详细易懂的二叉树遍历(先中后)
  3. SAP Spartacus用户登录的实现
  4. 可重入锁 不可重入锁_什么是可重入锁?
  5. gettype_PHP gettype()函数与示例
  6. spotify 数据分析_我的Spotify流历史分析
  7. ThreadLocal 解决多线程程序的并发问题+事务处理
  8. 【原创】分享一个分析函数统计案例
  9. Visio2010绘制用例图
  10. 海康威视错误代码0xf_技术讨论 | 看我如何重置海康威视IP摄像机的管理员密码...
  11. java中的jQuery与Ajax的应用,菜鸟教程
  12. 【前端学习】HTML入门
  13. 火山视频抖音版批量下载,一个脚本就够了,手把手教你批量下载抖音火山高清视频。
  14. matlab传递闭包算法,传递闭包(用关系矩阵求传递闭包怎么求)
  15. YOLOv3源码解析1-代码整体结构
  16. 论文中怎么写F检验值
  17. IEEE期刊最新的影响因子
  18. xpath中ends-with无法定位问题的解决办法
  19. Win10系统安装3dsmax2014常见问题及解决方案
  20. 广东开放大学学习指引(A)(本专,2022春)

热门文章

  1. python编程入门教学-史上最全Python编程基础入门教程
  2. python入门先学什么-C和Python我该先学什么?
  3. 为什么李开复说科大讯飞不懂语音,99%的语音识别项目要死掉?
  4. 有道云笔记语音速记功能体验:让你在移动办公中解放双手
  5. 您好,我是中科院做语音识别的博士生,我想参加阿里招聘但是,北京 爱问知识人...
  6. 51—Nod 1384 全排列
  7. runtimeerror怎么解决python_如何解决这个python错误? RuntimeError:字典在迭代期间改变了大小...
  8. 产品经理学习记录(一)
  9. Vue使用html2canvas将Dom转化为图片
  10. 【linux笔记】常用命令(3):文件相关