13K+ 次浏览
要检测图像中的人并围绕他们绘制边界框,您可以使用以下步骤 - 导入所需的库。在以下所有示例中,所需的 Python 库是 OpenCV。确保您已安装它。使用 cv2.imread() 以灰度读取输入图像。指定完整的图像路径。初始化 HOG 描述符对象 hog = cv2.HOGDescriptor() 并将 SVM 检测器设置为 hog.setSVMDetector() 作为默认人员检测器。使用 hog.detectMultiScale() 检测输入图像中的人。它以 (x, y, w, h) 格式返回检测到的人的坐标。循环遍历所有……阅读更多
5K+ 次浏览
我们首先检测图像中的所有对象轮廓以检测多边形。然后循环遍历所有轮廓。查找每个轮廓的近似轮廓。如果近似轮廓中的顶点数量为 5 或更多,则绘制轮廓并将其设置为三角形。请参见下面的伪代码。for cnt in contours: approx = cv2.approxPolyDP() if len(approx) >= 5: cv2.drawContours() cv2.putText("Polygon") 步骤我们可以使用以下步骤在……阅读更多
11K+ 次浏览
“Haar 级联分类器”是一种有效的基于机器学习的对象检测方法。要训练用于眼睛检测的 Haar 级联分类器,该算法最初需要大量的正样本图像(眼睛图像)和负样本图像(没有眼睛的图像)。然后从这些正样本和负样本图像训练分类器。然后将其用于检测其他图像中的眼睛。我们可以使用已经训练好的 Haar 级联进行眼睛检测。对于输入图像中的眼睛检测,我们需要两个 Haar 级联,一个用于人脸检测,另一个用于眼睛检测。我们将使用以下两个……阅读更多
44K+ 次浏览
在 OpenCV 中,要更改图像的对比度和亮度,我们可以使用 cv2.convertScaleAbs()。我们为此方法使用的语法如下:cv2.convertScaleAbs(image, alpha, beta) 其中 image 是原始输入图像。alpha 是对比度值。要降低对比度,请使用 0 < alpha < 1。对于更高的对比度,请使用 alpha > 1。beta 是亮度值。亮度值的良好范围是 [-127, 127] 我们还可以应用 cv2.addWeighted() 函数来更改图像的对比度和亮度。我们在示例 2 中讨论了它。步骤……阅读更多
14K+ 次浏览
OpenCV 为我们提供了不同类型的鼠标事件。有不同类型的鼠标事件,例如左键或右键单击、鼠标移动、左键双击等。鼠标事件返回鼠标事件的坐标 (x, y)。要在执行事件时执行操作,我们定义一个鼠标回调函数。我们使用左键单击 (cv2.EVENT_LBUTTONDOWN) 和右键单击 (cv2.EVENT_RBUTTONDOWN) 来显示点击图像上点的坐标。步骤要显示点击输入图像上点的坐标,您可以按照以下步骤操作:……阅读更多
我们使用 Haar 级联分类器来检测图像中的人脸。Haar 级联分类器是一种有效的基于机器学习的对象检测方法。我们可以训练我们自己的 Haar 级联进行训练数据,但在这里我们使用已经训练好的 Haar 级联进行人脸检测。我们将使用 haarcascade_frontalface_alt.xml 作为人脸检测的“Haar 级联”XML 文件。如何下载 Haarcascades?您可以按照 GitHub 网站地址查找不同的 haarcascades:https://github.com/opencv/opencv/tree/master/data/haarcascades 要下载用于人脸检测的 Haar 级联,请单击 haarcascade_frontalface_alt.xml 文件。以原始格式打开它,右键单击并保存。……阅读更多
2K+ 次浏览
在 OpenCV 中,图像是 NumPy ndarray。OpenCV 中的图像转置操作作为 NumPy 2D 数组(矩阵)的转置执行。矩阵沿其主对角线转置。转置图像是在其对角线上翻转的图像。我们使用 cv2.transpose() 来转置图像。步骤我们可以使用以下步骤来转置输入图像:导入所需的库 OpenCV 和 Matplotlib。确保您已安装它们。使用 cv2.imread() 读取输入图像。指定图像的完整路径。将图像赋值给变量 img。转置输入……阅读更多
3K+ 次浏览
在颜色量化过程中,图像中使用的颜色数量减少了。这样做的一个原因是减少内存。有时,某些设备只能产生有限数量的颜色。在这些情况下,会执行颜色量化。我们使用 cv2.kmeans() 来应用 k 均值聚类进行颜色量化。步骤要使用 K 均值聚类在图像中实现颜色量化,您可以按照以下步骤操作:导入所需的库 OpenCV 和 NumPy。确保您已安装它们。使用 cv2.imread() 方法读取两张输入图像。指定……阅读更多
9K+ 次浏览
可以使用立体图像创建深度图。为了根据立体图像构建深度图,我们找到两幅图像之间的差异。为此,我们使用 cv2.StereoBM_create() 创建 StereoBM 类的对象,并使用 stereo.comput() 计算差异。其中 stereo 是创建的 StereoBM 对象。步骤要根据立体图像创建深度图,您可以按照以下步骤操作:导入所需的库 OpenCV、Matplotlib 和 NumPy。确保您已安装它们。使用 cv2.imread() 方法读取两张输入图像作为灰度图像。指定……阅读更多
4K+ 次浏览
我们使用尺度不变特征变换 (SIFT) 和 FLANN(快速近似最近邻库)来实现两幅图像之间的特征匹配。SIFT 用于查找特征关键点和描述符。基于 FLANN 的匹配器使用 knn 来匹配两幅图像中的描述符。我们使用 cv2.FlannBasedMatcher() 作为基于 FLANN 的匹配器。步骤要使用 SIFT 特征检测器和基于 FLANN 的匹配器实现两幅图像之间的特征匹配,您可以按照以下步骤操作:导入所需的库 OpenCV、Matplotlib 和 NumPy。确保您已安装它们。读取两张输入图像……阅读更多