python opencv 检测特定颜色
来源:互联网 发布:plc,单片机,dsp的区别 编辑:程序博客网 时间:2024/05/29 16:28
15-python opencv 检测特定颜色
- 15-python opencv 检测特定颜色
- 概述
- 实现过程
- 定义视频对象
- 设置HSV中蓝色天蓝色范围
- 获取视频帧并转成HSV格式
- 获取mask
- 图像按位操作
- 源代码
- 运行结果
- 参考
概述
本节实现的是使用OpenCV里自带的函数,检测出视频里图像中的蓝色和天蓝色、青色,比如我的手机背景、我衣服上的蓝色格子,墙砖的蓝色和学生证照片上的蓝色背景。
- 设置“蓝色”HSV范围
- BGR转HSV
- 捕获摄像头视频
- 获取蓝色部分mask
- 图像按位与操作
- 显示蓝色部分图像
实现过程
定义视频对象
视频对象用于捕获摄像头视频流。
import cv2import numpy as npcap = cv2.VideoCapture(0)
设置HSV中蓝色、天蓝色范围
这里主要参考了这个博客,我设置的颜色范围如下。
# set blue threshlower_blue=np.array([78,43,46])upper_blue=np.array([110,255,255])
获取视频帧并转成HSV格式
利用cvtColor()将BGR格式转成HSV格式,参数为cv2.COLOR_BGR2HSV。
# get a frame and showret, frame = cap.read()cv2.imshow('Capture', frame)# change to hsv modelhsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
获取mask
利用inRange()函数和HSV模型中蓝色范围的上下界获取mask,mask中原视频中的蓝色部分会被弄成白色,其他部分黑色。
# get maskmask = cv2.inRange(hsv, lower_blue, upper_blue)cv2.imshow('Mask', mask)
图像按位操作
将mask于原视频帧进行按位与操作,则会把mask中的白色用真实的图像替换:
# detect blue res = cv2.bitwise_and(frame, frame, mask=mask) cv2.imshow('Result', res)
源代码
程序的源代码如下:
# created by Huang Lu# 28/08/2016 14:46:31 # Department of EE, Tsinghua Univ.import cv2import numpy as npcap = cv2.VideoCapture(0)# set blue threshlower_blue=np.array([78,43,46])upper_blue=np.array([110,255,255])while(1): # get a frame and show ret, frame = cap.read() cv2.imshow('Capture', frame) # change to hsv model hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # get mask mask = cv2.inRange(hsv, lower_blue, upper_blue) cv2.imshow('Mask', mask) # detect blue res = cv2.bitwise_and(frame, frame, mask=mask) cv2.imshow('Result', res) if cv2.waitKey(1) & 0xFF == ord('q'): breakcap.release()cv2.destroyAllWindows()
也可以参考我的GitHub上的,点击这里。
运行结果
在命令行进入该源程序所在目录后,运行python main.py
后即可显示结果。显示结果如下:
可以发现,我的手机背景、我衣服上的蓝色格子,墙砖的蓝色和学生证照片上的蓝色背景都被正确的识别出来了,但是还存在一些噪声,有待进一步改进。
参考
- http://blog.csdn.net/taily_duan/article/details/51506776
- OpenCV-Python-Toturial-中文版.pdf
- https://github.com/hlthu/Python/tree/master/Python_OpenCV/Color_Track/
- http://hlthu.github.io/blogs/PythonOpenCV/15-Color_Track.html
0 0
- python opencv 检测特定颜色
- python opencv检测目标颜色
- 检测视频中特定颜色
- Opencv中的颜色检测
- opencv颜色检测
- opencv 颜色检测
- OpenCV Using Python——RGB颜色空间和YCbCr颜色空间的混合肤色检测
- python opencv 颜色分割
- python-opencv-轮廓检测
- python opencv运动检测
- 交通标志检测(OpenCV&Python)
- Python-OpenCV轮廓检测
- OpenCV-Python 边缘检测
- OpenCV Using Python——RGB颜色空间中的肤色检测
- OpenCV Using Python——HSV颜色空间和改进的YCbCr颜色空间中的肤色检测
- opencv-根据颜色进行目标检测
- opencv-根据颜色进行目标检测
- Opencv直方图反投影检测颜色
- 机器学习经典之PCA的数学原理(很值得读)
- Android Studio快捷键
- 求二叉树中最远的两个节点的距离
- 数据库的主从架构
- 一些好的链接
- python opencv 检测特定颜色
- SpringMVC与Struts2区别与比较总结 .
- 【Java】编程细节与技巧
- 树路径和总结
- (第1讲)动态网页的发展(韩顺平的视频教程+自己看的书)
- MATLAB面向对象编程
- hdu5353
- nyoj36 DP动规 最长公共子序列
- 《大话Java性能优化》面向对象及基础类型相关部分