介绍
OpenCV 彻底改变了整个图像处理领域。从图像分类到对象检测,我们不仅可以使用 OpenCV 库做一些很酷的事情,而且还可以构建一流的应用程序。
今天我们要实现一个有趣的东西,它是手机或电脑中的一种功能,即图像缩放。但在这里,它将是实时对帧上所需的图像进行虚拟缩放。
目录
要求
目的
构建
结论
要求
对于这个项目,我们将使用 OpenCV 库和另一个名为 Cvzone 的库来使用虚拟缩放。
CVZone
它是一个建立在 OpenCV 和 MediaPipe 之上的库。它使事情变得容易得多。
CVZone 具有一些非常有用的内置功能,例如手部跟踪、面部标志检测、姿势估计等等。这些都可以通过几行代码来完成。
让我们编写一段代码来看看使用 CVZone 的手部检测器的演示。首先,安装 requirements 。你可以使用以下命令安装它,也可以逐个安装。
– pip install -r requirements.txt
或
– pip install opencv-python==3.4.11.43
– pip install cvzone==1.5.3
现在让我们检测手。
import cv2
from cvzone.HandTrackingModule import HandDetector
# Input from webcam
frame = cv2.VideoCapture(0)
frame.set(3, 1280)
frame.set(4, 720)
# initialize hand detector module with some confidence
handDetector = HandDetector(detectionCon=0.8)
# loop
while True:
# Read the frames from webcam
res, img = frame.read()
# detect the hands, by default it will detect two hands
hands = handDetector.findHands(img)
# show the output
cv2.imshow(“Sample CVZone output”, img)
cv2.waitKey(1)
首先,让我们导入所需的模块,cv2,以及从 cvzone.HandTrackingModule 导入HandDetector*。*
然后我们将使用 OpenCV 的 Videocapture 功能从网络摄像头获取输入。设置窗口的高度和宽度,并以一定的检测置信度初始化手部检测器模块。
然后在循环内部从网络摄像头读取输入帧并将其传递给手部检测器模块内部的方法,即 findHands。显示图像。