📜  开始进入计算机视觉的基本 OpenCV 函数(1)

📅  最后修改于: 2023-12-03 15:25:33.126000             🧑  作者: Mango

开始进入计算机视觉的基本 OpenCV 函数

OpenCV 是一个开源的计算机视觉库,包含了许多基础的函数用来处理图像和视频。在这里,我们将介绍一些基本的 OpenCV 函数以启动您的计算机视觉之旅。

安装 OpenCV

您可以使用 pip 来安装 OpenCV:

pip install opencv-python
加载图像

要加载图像,请使用 cv2.imread() 函数。该函数将返回一个具有像素值的 NumPy 数组。如果无法找到图像,则返回 None

import cv2

img = cv2.imread("image.jpg")
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
显示图像

要显示图像,请使用 cv2.imshow() 函数。该函数将图像显示在窗口中。最后,使用 cv2.waitKey() 等待用户按下键盘键后关闭窗口。

import cv2

img = cv2.imread("image.jpg")
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
转换颜色空间

要将图像从一个颜色空间转换为另一个颜色空间,请使用 cv2.cvtColor() 函数。

import cv2

img = cv2.imread("image.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("image", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
阈值化

阈值化是将图像分割成两个部分的过程。任何像素值大于阈值的像素都将变为白色,而小于或等于阈值的像素则变为黑色。要对图像进行阈值化,请使用 cv2.threshold() 函数。

import cv2

img = cv2.imread("image.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, threshold_img = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
cv2.imshow("image", threshold_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
模糊

模糊是一种减少图像噪点和细节的方法。要对图像进行模糊操作,请使用 cv2.blur() 函数。参数 ksize 定义内核大小,必须是一个奇数。

import cv2

img = cv2.imread("image.jpg")
blur_img = cv2.blur(img, (5, 5))
cv2.imshow("image", blur_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
边缘检测

边缘检测是一种将图像中的边缘检测出来的方法。要对图像进行边缘检测,请使用 cv2.Canny() 函数。参数 threshold1threshold2 定义两个阈值,它们是边缘梯度的最小和最大值。

import cv2

img = cv2.imread("image.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 200)
cv2.imshow("image", edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
轮廓检测

轮廓是图像中连续的点组成的形状。要在图像中检测轮廓,请使用 cv2.findContours() 函数。该函数接受二值化图像作为输入,并返回一组点,这些点组成轮廓。

import cv2

img = cv2.imread("image.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, threshold_img = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(threshold_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
小结

这只是 OpenCV 中一小部分可用函数的简单介绍。OpenCV 可以进行更高级和更复杂的操作,如匹配,特征检测和分类。此外,OpenCV 支持许多类型的输入和输出,如文件,摄像头和网络摄像头。在您继续使用 OpenCV 之前,请花些时间了解更多 OpenCV 函数和操作。