Comment recadrer des images dans OpenCV à l'aide de Python
Dans le traitement d'image, le recadrage est une opération fondamentale pour extraire des régions spécifiques d'une image. OpenCV, une bibliothèque de vision par ordinateur populaire en Python, fournit diverses méthodes de recadrage, notamment le découpage numpy et des fonctions telles que getRectSubPix.
Utiliser le découpage numpy pour le recadrage
Le plus simple et L'approche la plus simple pour recadrer des images dans OpenCV consiste à utiliser le découpage numpy. Les tableaux Numpy représentent des images dans OpenCV et vous pouvez accéder à des régions spécifiques du tableau à l'aide d'opérations de découpage.
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)
Utilisation de getRectSubPix pour le recadrage
Dans certains scénarios, tels que comme lorsqu'un recadrage précis de sous-pixels est requis, la fonction getRectSubPix d'OpenCV peut être utilisée. Il extrait une partie rectangulaire de l'image tout en interpolant les valeurs des pixels.
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)
Exemple de code (PIL vs. OpenCV)
Pour illustrer la différence entre PIL et OpenCV, créons un exemple similaire à celui fourni dans le question.
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)
Dans cet exemple, OpenCV utilise le découpage numpy pour recadrer l'image spécifiée par les coordonnées (1, 1, 98, 33). L'image recadrée résultante est enregistrée sous '_0.png.'
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!