CV2:Python 开发人员 OpenCV 高级指南

Python 是一种流行的编程语言,它有许多用于不同应用的库和模块。OpenCV 就是这些库中的一个,通常用于图像和视频处理。cv2 模块是 OpenCV 中最重要的模块,它为开发人员提供了使用图像和视频处理功能的易用界面。

本文将介绍 cv2 中最常用的一些函数。

cv2 - 安装

在了解功能之前,必须先安装 cv2。安装 cv2 主要有两种方法:

  1. pip安装opencv-python
  2. conda install -c conda-forge opencv

一旦cv2安装完毕,我们就可以开始使用该库提供的各种功能。

在过去,我们写过关于Python包的文章,如。

cv2.imread

cv2.imread是一个从文件中读取图像的函数。它将文件路径作为输入,并返回一个包含图像的numpy数组。下面是一个例子。

导入 cv2
img = cv2.imread('image.jpg')

cv2.调整大小

cv2.resize 是一个用于调整图像大小的函数。它将输入的图像和新的尺寸作为输入,并返回调整后的图像。这里有一个例子。

导入 cv2
img = cv2.imread('image.jpg')
resized_img = cv2.resize(img, (500, 500))

cv2.imshow

cv2.imshow 是一个用于显示图像的函数。它将图像作为输入,并打开一个新窗口来显示图像。下面是一个例子。

导入 cv2
img = cv2.imread('image.jpg')
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.imwrite

cv2.imwrite是一个将图像保存到文件的函数。它接受图像和文件路径作为输入,并将图像保存在文件路径中。下面是一个例子。

导入 cv2
img = cv2.imread('image.jpg')
cv2.imwrite('new_image.jpg', img)

cv2.阈值

cv2.threshold 是一个可用于对图像进行阈值处理的函数。它将输入的图像和一个阈值作为输入,并返回阈值的图像。下面是一个例子。

导入 cv2
img = cv2.imread('image.jpg', 0)
ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)

cv2.矩形

cv2.rectangle 是一个在图像上绘制矩形的函数。它接受输入的图像、矩形的坐标、颜色和厚度作为输入,并返回画有矩形的图像。下面是一个例子。

导入 cv2
img = cv2.imread('image.jpg')
cv2.rectangle(img, (100, 100), (200, 200), (0, 255, 0), 2)

cv2.findContours

cv2.findContours是一个用来寻找图像中的轮廓的函数。它将输入的图像、轮廓检索模式和轮廓逼近方法作为输入,并返回轮廓。下面是一个例子。

导入 cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
轮廓

加载和显示图像

一旦你安装了CV2,你就可以处理图像了。第一步是将图像加载到你的Python程序中。要做到这一点,你可以使用函数cv2.imread(),它将图像文件的路径作为输入,并返回一个代表图像的NumPy数组。

导入 cv2
# 加载图像
img = cv2.imread('image.jpg')
# 显示图像
cv2.imshow('Image', img)
# 等待按键并关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的代码中,我们首先用函数cv2.imread()加载一个图像,并将其存储在变量img中。然后,我们用函数cv2.imshow()来显示图像,该函数需要两个参数:窗口的名称和图像本身。最后,我们用函数cv2.waitKey()来等待按键,然后用函数cv2.destroyAllWindows()来关闭该窗口。

图像处理

CV2提供了许多编辑图像的功能,例如调整大小、旋转和裁剪。下面是一些例子。

# 调整图像大小
resized_img = cv2.resize(img, (500, 500))
# 旋转图像
(rows, cols) = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)
rotated_img = cv2.warpAffine(img, M, (cols, rows))
# 裁剪图像
cropped_img = img[100:300, 200:400] 裁剪图像

在上面的代码中,用cv2.resize()函数调整图像大小,用cv2.getRotationMatrix2D()和cv2.warpAffine()函数旋转图像,用NumPy阵列索引裁剪图像。

图像过滤

过滤图像是图像处理中的一项重要技术,可以用来增强或提取图像的某些特征。CV2提供了几种过滤图像的功能,如模糊、锐化和边缘检测。下面是一些例子。

# 模糊图像
blurred_img = cv2.blur(img, (5, 5))
# 锐化图像
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
sharpened_img = cv2.filter2D(img, -1, kernel)
# 检测图像中的边缘
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges_img = cv2.Canny(gray_img, 100, 200)

在上面的代码中,用cv2.blur()函数对图像进行模糊处理,用cv2.filter2D()函数和自定义内核进行锐化处理,用cv2.cvtColor()函数将图像转换成灰度,用cv2.Canny()函数检测图像的边缘。

总结

CV2是一个在Python中处理图像的强大库。在这篇文章中,我们介绍了CV2中一些最常用的函数和方法,包括加载和显示图像、图像处理和过滤图像。有了这些工具,你可以探索计算机视觉和图像处理的精彩世界。

CV2可以在下面找到 俾斯麦(PyPi) 下载。

对于开发人员来说,我们的贡献在于 OCR API文件AI 也非常令人兴奋。

"
"
Florian Zyprian 的头像

最新文章