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)
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)
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')
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)
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!