Python-opencv颜色物体跟踪程序

Python-opencv颜色物体跟踪程序:

1.首先我们得找到物体颜色的HSV是多少,这样我们物体识别更准确
如何找到HSV:
(1)首先用同一个摄像头拍照我们所需跟踪物品的照片
在这里插入图片描述
import cv2
cap = cv2.VideoCapture(0)
while(1):
# get a frame
ret, frame = cap.read()
# show a frame
cv2.imshow(“capture”, frame)
if cv2.waitKey(1) & 0xFF == ord(‘q’):#按q保存图片并退出
cv2.imwrite("/home/pi/Pictures/huanggua.png", frame)
#保存图片到一个地址里,注意如果地址不对的话,是没法进行保存的,
break
cap.release()
cv2.destroyAllWindows()#释放窗口
注意按q是保存图片,同时我们保存图片的格式是png

2.找出获得一幅图片里面 某个物体的精确的hsv的值
在这里插入图片描述
在hsv图里点击,就可输出该点的精确的hsv的值:
在这里插入图片描述
import cv2
import numpy as np
from matplotlib import pyplot as plt

image=cv2.imread("/home/pi/Pictures/huanggua.png",1)
HSV=cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
def getpos(event,x,y,flags,param):
if event==cv2.EVENT_LBUTTONDOWN: #定义一个鼠标左键按下去的事件
print(HSV[y,x])

cv2.imshow(“imageHSV”,HSV)
cv2.imshow(‘image’,image)
cv2.setMouseCallback(“imageHSV”,getpos)
cv2.waitKey(0)

3.物体跟踪

import cv2
import numpy as np
cap=cv2.VideoCapture(0)
while(1):
ret,frame=cap.read()
hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
lower_blue=np.array([30,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:#按Esc进行截图
cv2.imwrite("/home/pi/Pictures/frame.png", frame)
cv2.imwrite("/home/pi/Pictures/mask.png", mask)
cv2.imwrite("/home/pi/Pictures/res.png", res)
break
cv2.destoryAllWindows()

(1)frame原图像:
在这里插入图片描述
(2)Mask掩膜图片
在这里插入图片描述
(3)最终照片
在这里插入图片描述
我们可以清楚的看到,这样我们就可以去除大量的其他噪声,其中有些噪声是因为那些噪声也在我们设置的HSV中,但是这也有一个致命的缺点就是我们必须知道目标物的颜色HSV。

我们值得注意的是HSV的数组里三个数据代表的意思:
HSV(色相/饱和度/明度)颜色空间是表示类似于RGB颜色模型的颜色空间的模型。根据色相通道(Channel)对颜色类型进行建模,因此在需要根据颜色对对象进行分割的图像处理任务中非常有用。饱和度的变化代表颜色成分的多少。明度通道描述颜色的亮度

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸡联盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值