图像处理13:物体追踪
来源:互联网 发布:图像对比识别软件 编辑:程序博客网 时间:2024/06/05 07:54
在 OpenCV 中有超过 190种(可以自己测试出来)进行颜色空间转换的方法。但是你以后就会 发现我们经常用到的也就两种:BGR↔Gray 和 BGR↔HSV。
还可以通过下面的命令得到所有可用的 flag:
#coding: utf-8import cv2flags=[i for i in dir(cv2) if i.startswith('COLOR_')]for i in range(len(flags)): print flags[i]print len(flags)
结果图:
现在我们知道怎样将一幅图像从 BGR 转换到 HSV 了,我们可以利用这 一点来提取带有某个特定颜色的物体。
在 HSV 颜色空间中要比在 BGR 空间 中更容易表示一个特定颜色。在我们的程序中,我们要提取的是一个蓝色的物体。下面就是就是我们要做的几步:
• 从视频中获取每一帧图像 。
• 将图像转换到 HSV 空间 。
• 设置 HSV 阈值到蓝色范围。
• 获取蓝色物体,当然我们还可以做其他任何我们想做的事,比如:在蓝色物体周围画一个圈。
下面就是我们的代码:
#coding:utf-8import cv2import numpy as npcap = cv2.VideoCapture(0)while (1): ret, frame = cap.read()#获取每一帧 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)#转换到HSV lower_blue = np.array([120, 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(5)&0xFF if k == 27: breakcv2.destroyAllWindows()
结果图:
如果你要追踪的颜色不在上面的表中,如何找到对应颜色的范围?
import cv2import numpy as npgreen = np.uint8([[[0,255,0]]])hsv_green = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)print hsv_green
结果图:
阅读全文
0 0
- 图像处理13:物体追踪
- 【图像处理】openCV光流法追踪运动物体
- 机器视觉,图像处理,多物体追踪的资源列表
- 图像处理——物体替换
- FPGA图像处理系列——乒乓球追踪设计实例
- 图像处理项目-监控视频的行人追踪
- 初学图像处理+opencv----跟踪视频中运动物体
- C#:图像处理- 文字识别OCR及物体识别
- DSAPI之摄像头追踪指定颜色物体
- python+opencv实现动态物体追踪
- opencv+arduino进行物体点追踪
- Opencv光流运动物体追踪
- Dlib库【7】——物体追踪
- 用于物体追踪的.avi视频文件
- 图像物体分类
- Matlab图像处理学习笔记(九):获取叠加物体的数量并进行分割
- 使用YOCOv2 处理bounding ,以跟踪图像中某些类物体的移动
- Android OpenCV图像识别和图像追踪
- one page
- java websocket
- 2017年7月30日13:43:01
- 【翻译】DPI and Device-Independent Pixels
- OpenCV学习之Canny边缘检测
- 图像处理13:物体追踪
- c++写时拷贝
- UnicodeDecodeError: 'gbk' codec can't decode byte 0xfe in position 45: illegal multibyte sequence
- java虚拟机 JVM
- 注释转换(C到C++的注释转换)
- 课堂学习——HDUOJ-1452
- java中求最大公约数和最小公倍数的方法
- Angular 设置input[number] 的初始值和双向绑定的使用
- linux学习之旅(十三)&& 系统虚拟机管理