1 OpenCV简单使用
1.1 什么是OpenCV
openCV全称是Open Source Computer Vision Library。是Intel(英特尔)公司开源计算机视觉库,它有一系列C函数和C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。
1.2 OpenCV的安装与使用
Windows
打开一个控制台终端(快捷键Win+R,输入cmd,进入终端),输入以下命令:
# 二者版本号需保持一致,这里安装4.6.0.66版本
pip install opencv-python==4.6.0.66
pip install opencv-contrib-python==4.6.0.66
- 安装验证
# 也可查看其他python库 格式:pip show 库名称
pip show opencv-python
pip show opencv-contrib-python
Linux
打开一个控制台终端(快捷键Ctrl+Alt+T),输入命令:
# 二者版本号需保持一致,这里安装4.6.0.66版本
pip install opencv-python==4.6.0.66
pip install opencv-contrib-python==4.6.0.66
简单使用
import cv2
def openCamera():
print('opencv版本',cv2.__version__)
print("键盘ESC退出")
cap = cv2.VideoCapture(0) # Linux
# cap = cv2.VideoCapture(1) # Windows
while cap.isOpened():
sucess,frame = cap.read()
if sucess:
cv2.imshow("frame",frame)
if cv2.waitKey(10)==27:
break
cap.release()
cv2.destroyAllWindows()
if __name__=="__main__":
openCamera()
2 颜色识别
2.1 知识补充
RGB和HSV色彩模型区别联系:
RGB
- RGB色彩模式是工业界的一种颜色标准。
- 通过对红,绿,蓝三个颜色通道的变化以及它们互相之间的叠加起来得到的各种颜色。
- 红绿蓝三个颜色通道各种色各分为256阶亮度。
HSV
- HSV分别代表了色相(Hue),饱和度(Saturation),明度(Value)。
- 色相指物体传导或反射的波长,更常见的是以颜色如红色,橘色,或绿色来辨识,取0到360度的数值来衡量。
- 饱和度又称为色度,是指色彩的强度或纯度,取值范围在0%~100%。
- 明度表示颜色明亮程度,取值范围为0%~100%。
区别与联系
- 在计算机视觉中,场景的实现需要将颜色分量和强度分开,例如对照明变化的鲁棒性或消除阴影。
- 与RGB不同,HSV将亮度或图像强度与色度或颜色信息分开。可以更好地进行特征提取和照明不变性或可视化。
2.2 获取BGR值
import cv2
# 打开摄像头
cap = cv2.VideoCapture(0)
ret,img = cap.read()
# 获取鼠标所点击的位置信息
def getposBgr(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print("Bgr is", img[y, x])
cv2.imshow('image', img)
cv2.setMouseCallback("image", getposBgr)
cv2.waitKey(0)
RGB转换为HSV:https://www.rapidtables.com/convert/color/rgb-to-hsv.html
2.3 进行颜色识别
脚本文件:color_detect.py
3 形状识别
3.1 进行形状识别
脚本文件:shape_detect.py
4 YOLO V8识别
4.1 进行yolov8识别
注意: 模型为根据官方使用说明训练好的best.pt模型,用户可自行训练数据集后,将模型保存为.pt文件后进行实时识别
脚本文件:yolov8_detect.py