如何使用 Python 在 OpenCV 中裁剪图像
在图像处理中,裁剪是从图像中提取特定区域的基本操作。 OpenCV 是 Python 中流行的计算机视觉库,提供了多种裁剪方法,包括 numpy 切片和 getRectSubPix 等函数。
使用 numpy 切片进行裁剪
最简单和在 OpenCV 中裁剪图像最直接的方法是使用 numpy 切片。 Numpy 数组代表 OpenCV 中的图像,您可以使用切片操作访问数组的特定区域。
import cv2 # Read the original image img = cv2.imread("image.jpg") # Crop a region using numpy slicing cropped_img = img[y:y+h, x:x+w] # Display the cropped image cv2.imshow('Cropped Image', cropped_img) cv2.waitKey(0)
使用 getRectSubPix 进行裁剪
在某些场景中,例如当需要精确的子像素裁剪时,可以使用 OpenCV 的 getRectSubPix 函数。它在插入像素值的同时提取图像的矩形部分。
import cv2 # Read the original image img = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE) # Crop a region using getRectSubPix cropped_img = cv2.getRectSubPix(img, (w, h), (x, y)) # Display the cropped image cv2.imshow('Cropped Image', cropped_img) cv2.waitKey(0)
示例代码(PIL 与 OpenCV)
用于说明 PIL 和 OpenCV 之间的区别OpenCV,让我们创建一个类似于 OpenCV 中提供的示例
PIL:
import PIL.Image as Image im = Image.open('0.png').convert('L') im = im.crop((1, 1, 98, 33)) im.save('_0.png')
OpenCV:
import cv2 # Read the image img = cv2.imread('0.png', cv2.IMREAD_GRAYSCALE) # Crop the image using numpy slicing cropped_img = img[1:33, 1:98] # Save the cropped image cv2.imwrite('_0.png', cropped_img)
在此示例中,OpenCV 使用 numpy 切片裁剪坐标 (1, 1, 98, 33) 指定的图像。生成的裁剪图像保存为“_0.png”。
以上是如何使用 Python 在 OpenCV 中裁剪图像:Numpy 切片与 getRectSubPix?的详细内容。更多信息请关注PHP中文网其他相关文章!