![](https://iotsensor.cn/wp-content/uploads/2023/11/image-72.png)
PYTHON 图像识别 - OPENCV
OpenCV 是一个开源图像识别库。它用于机器学习、计算机视觉和图像处理。与 Numpy 和 Pandas 等强大的库集成时,您可以充分利用 OpenCV。
关注💵不迷路,每天🌈学习提升解锁🔑更多技能。关注微信公众号,查看图文教程。
![公众号:计算机程序吧 - PYTHON 图像识别 - OPENCV 公众号:计算机程序吧 - PYTHON 图像识别 - OPENCV](https://hao-blog.com/wp-content/uploads/2023/10/2023102722453162-300x300.jpg)
安装PYTHON 3.X
打开终端/命令提示符并输入:~ pip install opencv-python
入门(如何阅读图像)
1.打开PyCharm。
2.导入cv2。
3.将测试图像粘贴到目录中。
4.使用函数创建变量来存储图像。5. 使用imshow()函数显示图像。6. 使用函数添加延迟。imread()
waitkey()
1
2
3
4
5
6import cv2
# LOAD AN IMAGE USING 'IMREAD'
img = cv2.imread("Resources/lena.png")
# DISPLAY
cv2.imshow("Lena Soderberg”, img)
cv2.waitKey(0)
使用 VIDEOCAPTURE() 函数播放视频
-
打开 PyCharm。
-
导入CV2.
-
将测试视频粘贴到目录中。
-
使用 VideoCapture() 函数创建变量来存储视频。
-
创建无限 while 循环以连续显示视频的每一帧。
-
使用 imshow() 函数显示视频。
-
使用 waitkey() 函数添加延迟。
1
2
3
4
5
6
7
8
9import cv2
frameWidth = 640
frameHeight = 480
cap = cv2.VideoCapture("Resources/test_ video.mp4")
while True:
success, img = cap.read()
img = cv2.resize(img, (frameWidth, frameHeight))
cv2.imshow("Result", img)
break
从网络摄像头访问实时直播
-
打开 PyCharm。
-
导入CV2.
-
使用 VideoCapture() 函数创建变量来存储视频。
-
在 VideoCapture(0) 中传递参数 0 以访问网络摄像头。
-
创建无限 while 循环以连续显示网络摄像头视频的每一帧。
-
使用 imshow() 函数显示实时动态。
-
使用 waitKey(0) 添加无限延迟。
1
2
3
4
5
6
7
8
9
10
11import cv2
Width = 640
Height = 480
cap = cv2.VideoCapture(0)
cap.set(3, frameWidth)
cap.set(4, frameHeight)
cap.set(10, 150)
while True:
success, img = cap.read()
cv2.imshow("Result", img)
break
OPENCV的功能
将图像转换为灰度
-
打开 PyCharm。
-
导入CV2.
-
使用函数创建变量来存储图像。
imread()
-
要转换为灰度使用函数
cv2.cvtColor()
-
传递参数图像位置并
COLOR_BGR2GRAY
进行转换。
1
2
3
4
5import cv2
img = cv2.imread("Resources/lena.png")
imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("Gray Image", imgGray)
cv2.waitKey(0)
边缘检测
-
打开 PyCharm。
-
导入CV2.
-
使用函数创建变量来存储图像。
imread()
-
检测边缘使用功能
cv2.Canny()
-
传递参数图像位置和阈值进行转换。
1
2
3
4
5
6import cv2
img = cv2.imread("Resources/lena.png")
imgCanny = cv2.Canny(img, 150, 200)
cv2.imshow("Canny Image”, imgCanny)
cv2.waitKey(0)
裁剪图像
-
导入 numpy 和 cv2。
-
创建两个变量来存储图像的高度和宽度。
-
创建两个 numpy 数组来存储坐标。
-
第一个数组 – 存储要裁剪的图像的坐标。
-
第二个数组 – 存储完整图像的坐标。
-
使用 getPerspective() 和 wrapPerspective() 函数裁剪图像。
1
2
3
4
5
6
7
8
9
10
11image = cv2.imread("Assets/cards.jpg")
width, height = 250, 350
point1 = np.float32([[111, 219], [287, 188], [154, 482], [352, 440]])
point2 = np.float32([[0, 0], [width, 0], [0, height], [width, height]])
matrix = cv2.getPerspectiveTransform(point1, point2)
Output = cv2.warpPerspective(image, matrix, (width, height))
cv2.imshow("Image”, image)
cv2.imshow("Output”, Output)
cv2.waitKey(0)
人脸检测
-
打开 PyCharm。
-
导入CV2.
3.创建一个变量来存储级联分类器(要了解有关级联分类器的更多信息,请单击此处。 -
使用函数将图像转换为灰度。
cv2.cvtColor()
-
使用功能检测人脸。
detectMultiscale()
-
在检测到的脸部周围绘制一个矩形。
1
2
3
4
5
6
7
8
9
10
11
12
13
14import cv2
face_Cascade = cv2.CascadeClassifier("Resources/haarcascade_frontalface_default.xml")
image = cv2.imread('Resources/lena.png')
imgGray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_Cascade.detectMultiScale(imgGray, 1.1, 4)
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 2)
cv2.imshow("Result", image)
cv2.waitKey(0)
学习更多编程技术,请关注微信公众号:计算机程序吧,感谢💯分享❎关注
10万+粉丝交流 了解更多物联网技术知识请
关注微信公众号:计算机程序吧
![物联网技术知识公众号:计算机程序吧 物联网技术知识公众号:计算机程序吧](https://iotsensor.cn/wp-content/uploads/2024/03/OK-min.png)