【OpenCV-Python】-颜色空间转换
OpenCV官方教程中文版 for Python,
原文为段立辉翻译,感谢Linux公社www.linuxidc.com
此文档为自学转述,如有侵权请联系本人
使用工具Python3.6
使用包cv2,numpy
涉及函数cv2.cvtColor(),cv2.inRange()
1、转换色彩空间
在 OpenCV 中有 超过150 种进行颜色空间转换的方法。但是你以后就会发现我们经常用到的也就两种:BGR↔Gray 和 BGR↔HSV。
我们用到的函数是cv2.cvtColor(input_imageflag),其中flag就是转换类型。
# BGR->Gray:cv2.COLOR_BGR2GRAY
# BGR->HSV:cv2.COLOR_BGR2HSV
获取所有可以使用的flag
import cv2
flags = [i for i in div(cv2) if i startwith('COLOR_')]
print(flags)
在 OpenCV 的 HSV 格式中,H(色彩/色度)的取值范围是 [0,179], S(饱和度)的取值范围 [0,255],V(亮度)的取值范围 [0,255]。但是不同的软件使用的值可能不同。所以当你拿 OpenCV 的 HSV 值与其他软件的 HSV 值对比时,一定要记得归一化.
2、物体跟踪
现在我们知怎样将一幅图像从 BGR 换到 HSV 了,我们可以利用 一点来提取带有某个特定色的物体。在 HSV 颜色空间中要比在 BGR 空间中更容易表示一个特定颜色。在我们的程序中,我们提取的是一个蓝色的物体。下就是就是我们做的几步:
• 从视频中获取每一帧图像
• 将图像换到 HSV 空间
• 设置 HSV 阀值到蓝色范围。
• 获取蓝色物体,当然我们可以做其他任何我们想做的事,比如:在蓝色物体周围画一个圈。
# 获取视频中的蓝色物体
import numpy as np
import cv2 cap = cv2.VideoCapture(0) while(True):
# 获取每一帧
ret, frame = cap.read() # 转换为HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # 设定蓝色的阈值
lower_blue = np.array([110,50,50])
upper_blue = np.array([130,255,255]) # 依据阈值构建掩摸
mask = cv2.inRange(hsv, lower_blue,upper_blue) # 对愿图像和掩摸进行位运算
res = cv2.bitwise_and(frame, frame,mask=mask) # 显示图像
cv2.imshow('frame',frame)
cv2.imshow('mask', mask)
cv2.imshow('res', res)
k = cv2.waitKey(3)&0xFF
if k ==15:
break cv2.destroyAllWindows()
【OpenCV-Python】-颜色空间转换的更多相关文章
- OpenCV 的颜色空间转换
# coding: utf-8 ''' 第13章主要介绍:颜色空间转换 ''' import cv2 import numpy as np ''' 经常用到的颜色空间转换是: BGR<-> ...
- OpenCV 颜色空间转换参数CV_BGR2GRAY改变
OpenCV的颜色空间转换函数: C++: void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 ) 参数d ...
- 颜色空间转换 cvtColor()[OpenCV 笔记13]
void cvtColor(InputArray src, OutputArray dst, ) src: 输入图像 dst: 输出图像 code: 颜色空间转换标识符 OpenCV2的CV_前缀宏命 ...
- opencv学习笔记——颜色空间转换函数cv::cvtColor详解
cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致. 具体 ...
- OpenCV 学习笔记(10)HSV颜色空间及颜色空间转换(RGB-HSV)
1.1 颜色空间介绍 RGB 颜色空间是大家最熟悉的颜色空间,即三基色空间,任何一种颜色都可以由该三种 颜色混合而成.然而一般对颜色空间的图像进行有效处理都是在 HSV 空间进行的,HSV(色 调 H ...
- OpenCV学习笔记(5)——颜色空间转换
学习如歌对图像进行颜色空间转换,从BGR到灰度图,或者从BGR到HSV等 创建一个程序用来从一幅图像中获取某个特定颜色的物体 1.转换颜色空间 OpenCV中有超过150种进行颜色空间转化的方法,但是 ...
- python数字图像处理(4):图像数据类型及颜色空间转换
一.图像数据类型及转换 在skimage中,一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换.这些数据类型及取值范围如下表所示: Data type Range uin ...
- Python-OpenCV中图像颜色空间转换
目录 cv2.cvtColor() 1. RGB to GRAY 2. RGB to CIE XYZ 3. RGB to YCrCb JPEG 4. RGB to HSV 5. RGB to HLS ...
- OpenCV Python教程(3、直方图的计算与显示)
转载请详细注明原作者及出处,谢谢! 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途什么的就直接略过去了. ...
随机推荐
- Type Hierarchy
Window - Preferences - General - Keys Name: Open Type Hierarchy Description: Open a type hie ...
- js基础巩固练习
---恢复内容开始--- 今天讲了js的基础知识 js的组成3部分1 ECMAscript 核心 2 DOM 文本对象模型 3BOM 浏览器模型 js 的引入方式三种 1 在body里作为标 ...
- 响应者链条,iOS中touchs事件的处理流程。
用户在使用app的时候,会产生各样的事件.在iOS中的事件可以分为三种 触摸事件(Touch Event) 加速计事件(Accelerometer Event) 远程控制事件(Remote Contr ...
- _I、_O、_IO的含义
转自:http://blog.csdn.net/daa20/article/details/42339695 __I. __O .__IO是什么意思? 这是ST库里面的宏定义,定义如下: #defin ...
- Python相关基础
1>变量: 2>条件判断与缩进: sex = raw_input("Please input your gender:") if sex == "girl&q ...
- yum使用,使用rpm指令安装rpm,使用dpkg指令安装deb
yum安装时如果报错提示安装失败,缺少库文件,可以使用: yum whatprovides 库名 之后安装提供的程序 yum remove xxx卸载 yum update 更新 解决 Require ...
- WebCalendar.js
var cal; var isFocus=false; //是否为焦点 var pickMode ={ "second":1, "minu ...
- C#生成二维码(加源码)
使用工具: Visual Studio(VS) 2013 第一步: 要用到一个类:QRCodeEncoder 这个类要添加一个动态库:ThoughtWorks.QRCode.dll(项目中有带) 然后 ...
- SAH Benchmarks Of Natural History Museum Scene
method ...
- OOM AutoMapper的简单实用
OOM AutoMapper的简单实用 一.前言: OOM顾名思义,Object-Object-Mapping实体间相互转换,AutoMapper也是个老生常谈了,其意义在于帮助你无需手动的转换简单 ...