Utilisation de la bibliothèque d'outils imutils

1. Introduction à la fonction imutils

imutils est un package basé sur OPenCV pour atteindre l'objectif d'appeler l'interface OPenCV de manière plus concise.Il peut facilement implémenter une série d'opérations telles que la traduction d'image, la rotation, la mise à l'échelle et la squelettisation.

méthode d'installation:

pip install imutils

Avant l'installation, assurez-vous que numpy, scipy, matplotlib et opencv ont été installés.

2. Comment utiliser imutils

2.1 Traduction d'images

OpenCV fournit également la mise en œuvre de la traduction d'image. La matrice de traduction doit être calculée d'abord, puis la transformation affine est utilisée pour réaliser la traduction. La traduction d'image peut être directement effectuée dans imutils.

translated = imutils.translate(img,x,y)

paramètre:

  • img: l'image à déplacer
  • x: le nombre de pixels déplacés le long de l'axe x
  • y: le nombre de pixels se déplaçant le long de l'axe y
import cv2
import numpy as np
import matplotlib.pyplot as plt
import imutils

from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei'] # 简体
 
mpl.rcParams['axes.unicode_minus']= False


img = cv2.imread('01.jpg')
img_translate = imutils.translate(img, 20, 30)

plt.figure(figsize=(20,8), dpi=100)
plt.subplot(1,2,1)
plt.imshow(img[:,:,::-1])
plt.title("原图")
plt.subplot(1,2,2)
plt.imshow(img_translate[:,:,::-1])
plt.title("平移后")

2.2 Zoom d'image

Dans OPenCV, le zoom de l'image doit prêter attention pour s'assurer que le rapport hauteur / largeur est conservé. Dans imutils, le rapport hauteur / largeur de l'image d'origine est automatiquement conservé, et seuls l'épaisseur et la hauteur peuvent être spécifiés.

img = cv2.imread('01.jpg')
img_resized = imutils.resize(img, height=200)

plt.figure(figsize=(20,8), dpi=100)
plt.subplot(1,2,1)
plt.imshow(img[:,:,::-1])
plt.title("原图")
plt.subplot(1,2,2)
plt.imshow(img_resized[:,:,::-1])
plt.title("缩放后")

2.3 Rotation de l'image

La transformation affine est utilisée lors de la rotation dans OpenCV. Ici, la méthode de rotation de l'image est imutils.rotate()suivie de 2 paramètres. Le premier est les données d'image, le second est l'angle de rotation et la rotation est dans le sens antihoraire. En même temps, imutilsune autre méthode similaire est fournie  rotate_round(), qui tourne dans le sens des aiguilles d'une montre.

img = cv2.imread('01.jpg')
img_rotate1 = imutils.rotate(img, 90)
img_rotate2 = imutils.rotate(img, 180)
img_rotate3 = imutils.rotate_bound(img, 90)


plt.figure(figsize=(20,8), dpi=100)
plt.subplot(2,2,1)
plt.imshow(img[:,:,::-1])
plt.title("原图")
plt.subplot(2,2,2)
plt.imshow(img_rotate1[:,:,::-1])
plt.title("逆时针旋转90度")
plt.subplot(2,2,3)
plt.imshow(img_rotate2[:,:,::-1])
plt.title("逆时针旋转180度")
plt.subplot(2,2,4)
plt.imshow(img_rotate3[:,:,::-1])
plt.title("顺时针旋转180度")

 

2.4 Extraction du squelette

L'extraction de squelette fait référence au processus de construction topologique du squelette des objets de l'image. La méthode fournie par imutils est skeletonize (). Le deuxième paramètre est la taille du paramètre de structure (élément structurant), qui équivaut à une granularité. Plus la taille est petite, plus le temps de traitement est long.

import cv2
import imutils
# 1 图像读取
image= cv2.imread('./01.jpg')
# 2 灰度化
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)                                  
# 3 骨架提取
skeleton = imutils.skeletonize(gray, size=(3, 3))  
# 4 图像展示
plt.figure(figsize=(10,8),dpi=100)
plt.subplot(121),plt.imshow(img[:,:,::-1]),plt.title('原图')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(skeleton,cmap="gray"),plt.title('骨架提取结果')
plt.xticks([]), plt.yticks([])
plt.show()

 

Je suppose que tu aimes

Origine blog.csdn.net/qq_39197555/article/details/114839030
conseillé
Classement