Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Memangkas Imej dalam OpenCV Menggunakan Python: Numpy Slicing vs. getRectSubPix?

Bagaimana untuk Memangkas Imej dalam OpenCV Menggunakan Python: Numpy Slicing vs. getRectSubPix?

Susan Sarandon
Lepaskan: 2024-11-30 18:12:17
asal
652 orang telah melayarinya

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

Cara Memangkas Imej dalam OpenCV Menggunakan Python

Dalam pemprosesan imej, pemangkasan ialah operasi asas untuk mengekstrak kawasan tertentu daripada imej. OpenCV, perpustakaan penglihatan komputer yang popular dalam Python, menyediakan pelbagai kaedah untuk memangkas, termasuk penghirisan numpy dan fungsi seperti getRectSubPix.

Menggunakan penghirisan numpy untuk Pemotongan

Yang paling mudah dan pendekatan yang paling mudah untuk memangkas imej dalam OpenCV adalah menggunakan penghirisan numpy. Tatasusunan numpy mewakili imej dalam OpenCV dan anda boleh mengakses kawasan tertentu tatasusunan menggunakan operasi penghirisan.

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)
Salin selepas log masuk

Menggunakan getRectSubPix untuk Pemangkasan

Dalam senario tertentu, seperti apabila pemangkasan sub-piksel yang tepat diperlukan, fungsi getRectSubPix OpenCV boleh dimanfaatkan. Ia mengekstrak bahagian segi empat tepat imej sambil menginterpolasi nilai piksel.

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)
Salin selepas log masuk

Kod Contoh (PIL lwn. OpenCV)

Untuk menggambarkan perbezaan antara PIL dan OpenCV, mari buat contoh yang serupa dengan yang disediakan dalam soalan.

PIL:

import PIL.Image as Image

im = Image.open('0.png').convert('L')
im = im.crop((1, 1, 98, 33))
im.save('_0.png')
Salin selepas log masuk

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)
Salin selepas log masuk

Dalam contoh ini, OpenCV menggunakan penghirisan numpy untuk memangkas imej yang ditentukan oleh koordinat (1, 1, 98, 33). Imej yang dipangkas yang terhasil disimpan sebagai '_0.png.'

Atas ialah kandungan terperinci Bagaimana untuk Memangkas Imej dalam OpenCV Menggunakan Python: Numpy Slicing vs. getRectSubPix?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan