欢迎访问宙启技术站
智能推送

Python图像处理工具:10个关键函数

发布时间:2023-06-12 18:23:59

Python是一门非常适合图像处理的语言。在Python中,有许多可以用于图像处理的函数和库。下面列出了10个关键的Python图像处理函数,这些函数可以用于图像的读取、处理、保存和显示。

1. imread()

imread()函数用于读取一张图片。它接受一个文件名作为输入,并返回一个包含图像数据的NumPy数组。例如:

import cv2

img = cv2.imread('image.png')

2. imwrite()

imwrite()函数用于保存一张图片。它需要两个参数:保存的文件名和要保存的图像。例如:

cv2.imwrite('new_image.png', img)

这将把变量img中的图像保存为一个PNG文件。

3. imshow()

imshow()函数用于显示一张图片。它需要两个参数:窗口的名称和要显示的图像。例如:

cv2.imshow('image', img)

cv2.waitKey(0)

cv2.destroyAllWindows()

这将创建一个名为“image”的窗口,并显示变量img中的图像。窗口会一直显示,直到用户按下任意键。

4. rgb2gray()

rgb2gray()函数用于把一个RGB图像转换成灰度图像。它接受一个RGB图像作为输入,并返回一个灰度图像。例如:

from skimage.color import rgb2gray

gray_image = rgb2gray(rgb_image)

这将把变量rgb_image中的RGB图像转换成灰度图像,并保存到变量gray_image中。

5. resize()

resize()函数用于改变一个图像的尺寸。它接受一个图像和一个目标尺寸作为输入,并返回一个新的图像。例如:

resized_image = cv2.resize(img, (500, 500))

这将把变量img中的图像调整为500x500的尺寸,并保存到变量resized_image中。

6. flip()

flip()函数用于翻转一个图像。它接受一个图像和一个标志作为输入,并返回一个新的图像。标志可以是0、1或-1,分别表示水平翻转、垂直翻转和同时水平垂直翻转。例如:

flipped_image = cv2.flip(img, 0)

这将把变量img中的图像水平翻转,并保存到变量flipped_image中。

7. getStructuringElement()

getStructuringElement()函数用于创建一个形态学结构元素。它接受两个参数:结构元素的形状和大小。常见的形状有矩形、十字形和椭圆形。例如:

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))

这将创建一个大小为5x5的矩形结构元素,并保存到变量kernel中。

8. erode()

erode()函数用于腐蚀一个图像。它接受一个图像和一个结构元素作为输入,并返回一个新的图像。腐蚀操作可以用于去除图像中的小噪点或者分离相邻目标。例如:

eroded_image = cv2.erode(img, kernel)

这将对变量img中的图像进行腐蚀操作,并使用变量kernel中的结构元素。

9. dilate()

dilate()函数用于膨胀一个图像。它接受一个图像和一个结构元素作为输入,并返回一个新的图像。膨胀操作可以用于填充图像中的空洞或者合并相邻目标。例如:

dilated_image = cv2.dilate(img, kernel)

这将对变量img中的图像进行膨胀操作,并使用变量kernel中的结构元素。

10. adaptiveThreshold()

adaptiveThreshold()函数用于自适应阈值化一个图像。它接受一个灰度图像、一个阈值类型、一个自适应方法和一个块大小作为输入,并返回一个二值图像。阈值类型可以是cv2.THRESH_BINARY或cv2.THRESH_BINARY_INV,自适应方法可以是cv2.ADAPTIVE_THRESH_MEAN_C或cv2.ADAPTIVE_THRESH_GAUSSIAN_C,块大小是一个奇数。例如:

thresholded_image = cv2.adaptiveThreshold(gray_image, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)

这将对变量gray_image中的灰度图像进行自适应阈值化,并使用cv2.ADAPTIVE_THRESH_MEAN_C方法和11x11的块大小。

以上10个函数是Python图像处理的关键函数,可以针对不同类型的图像进行不同的处理,达到所期望的效果。