OpenCV学习7

编程入门 行业动态 更新时间:2024-10-21 05:53:18

<a href=https://www.elefans.com/category/jswz/34/1769967.html style=OpenCV学习7"/>

OpenCV学习7

'''
摄像头物体追踪-红色瓶盖
RGB色彩空间的基础是对叠加型三原色(红、绿、蓝)的应用。之所以选择它们,是因为把它们组合起来后可以产生色域很宽
的各种颜色。实际上,人类的视觉系统也是基于对三原色的感知,因为视锥细胞的灵敏度位于红绿蓝的光谱周围。这通常是数
字成像中默认的色彩空间,因为这就是人类看数字图像的方式。捕捉到的光线穿过红绿蓝三种滤波器,并且在数字图像中会对
红绿蓝三个通道做校正,当三种颜色强度相同时就会取得灰度,即从黑色(0, 0, 0)到白色(255,255, 255)。
但是,利用RGB色彩空间计算颜色之间的差距,并不是衡量两个颜色相似度的最好方式。实际上RGB并不是感知均匀的色彩空
间。就是说,两种具有一定差距的颜色可能看起来非常接近,而另外两种具有同样差距的颜色看起来却差别很大。
HSV和HLS这两种色彩空间很有意思,它们把颜色分解成加值的色调和饱和度组件或亮度组件。人类用这种方式来描述颜色会
更加自然。
'''
import numpy as np
import cv2 as cv
import time#为了获取视频,创建一个 VideoCapture 对象。它参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在
#指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。
cap = cv.VideoCapture(0)
#根据上面的方法设定红色的阈值
lower_red = np.array([71,57,128])
upper_red = np.array([215,179,255])
i=1
#死循环
while(1):##摄像头逐帧捕捉,ret是返回状态,frame是视频帧ret,frame = cap.read()'''这一段是为了确认被追踪物体颜色,将被追踪物体(比如农夫山泉红色的瓶盖)放在摄像头下,摄像头一秒钟保存一次图像,然后用WIN自带画图工具打开图片,鼠标移动到图像红色瓶盖最亮部分,左下角会显示像素坐标位置如(439,263),获取图像该坐标颜色通道值 >>>img[263,439]  array([215, 179, 225], dtype=uint8)。再移动到图像红色瓶盖最暗部分,获取颜色通道值。time.sleep(1)savefile = str(i)+'.jpg'i += 1cv.imwrite(savefile,frame)'''#颜色空间转换成HSVhsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)#根据阈值构建掩膜mask = cv.inRange(hsv,lower_red,upper_red)#对原图像和掩膜进行位运算res = cv.bitwise_and(frame,frame,mask = mask)#显示图像cv.imshow('frame',frame)cv.imshow('mask',mask)cv.imshow('res',res)#按q键后退出if cv.waitKey(1) & 0xFF == ord('q'):break
#释放摄像头
cap.release()
#关闭窗口
cv.destroyAllWindows()

##原始图像
##掩膜图像
##最后识别出的图像

更多推荐

OpenCV学习7

本文发布于:2024-03-14 04:03:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1735580.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:OpenCV

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!