Python图像处理工具:10个关键函数
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图像处理的关键函数,可以针对不同类型的图像进行不同的处理,达到所期望的效果。
