📅  最后修改于: 2023-12-03 15:25:33.126000             🧑  作者: Mango
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()
函数。参数 threshold1
和 threshold2
定义两个阈值,它们是边缘梯度的最小和最大值。
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 函数和操作。