如何使用 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)
以上是如何使用 Python 在 OpenCV 中裁剪映像:Numpy 切片與 getRectSubPix?的詳細內容。更多資訊請關注PHP中文網其他相關文章!