首頁 > 後端開發 > Python教學 > 如何使用 Python 在 OpenCV 中裁剪映像:Numpy 切片與 getRectSubPix?

如何使用 Python 在 OpenCV 中裁剪映像:Numpy 切片與 getRectSubPix?

Susan Sarandon
發布: 2024-11-30 18:12:17
原創
652 人瀏覽過

How to Crop Images in OpenCV Using Python: Numpy Slicing vs. getRectSubPix?

如何使用 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板