Le redimensionnement d'image fait référence à la mise à l'échelle des images. La mise à l'échelle est utile dans de nombreuses applications de traitement d'images ainsi que d'apprentissage automatique. Cela aide à réduire le nombre de pixels d'une image et cela présente plusieurs avantages, par ex. Cela peut réduire le temps de formation d'un réseau neuronal, car plus le nombre de pixels dans une image est élevé, plus le nombre de nœuds d'entrée augmente, ce qui à son tour augmente la complexité du modèle.
Cela aide également à zoomer sur les images. Plusieurs fois, nous devons redimensionner l'image, c'est-à-dire la réduire ou l'agrandir pour répondre aux exigences de taille. OpenCV nous propose plusieurs méthodes d'interpolation pour redimensionner une image.
Choix de la méthode d'interpolation pour le redimensionnement :
- cv2.INTER_AREA : Ceci est utilisé lorsque nous devons réduire une image.
- cv2.INTER_CUBIC : C'est lent mais plus efficace.
- cv2.INTER_LINEAR : ceci est principalement utilisé lorsqu'un zoom est requis. Il s'agit de la technique d'interpolation par défaut dans OpenCV.
Syntaxe: cv2.resize(source, dsize, dest, fx, fy, interpolation)
Paramètres:
- source : tableau d'images d'entrée (monocanal, 8 bits ou virgule flottante) dsize : taille du tableau de sortie dest : tableau de sortie (similaire aux dimensions et au type du tableau d'images d'entrée) [facultatif] fx : facteur d'échelle le long du axe horizontal [facultatif] fy : facteur d'échelle le long de l'axe vertical [facultatif] interpolation : une des méthodes d'interpolation ci-dessus [facultatif]
Ci-dessous le code pour le redimensionnement :
Python3
alphabet des chiffres
import> cv2> import> numpy as np> import> matplotlib.pyplot as plt> image>=> cv2.imread(r>'D:simsebsim21EB-ML-06-10-2022-Test-Output-15PERFORATIONOverkillFailBlister 1 2022-03-12 12-59-43.859 T0 M0 G0 3 PERFORATION Mono.bmp'>,>1>)> # Loading the image> half>=> cv2.resize(image, (>0>,>0>), fx>=> 0.1>, fy>=> 0.1>)> bigger>=> cv2.resize(image, (>1050>,>1610>))> stretch_near>=> cv2.resize(image, (>780>,>540>),> >interpolation>=> cv2.INTER_LINEAR)> Titles>=>[>'Original'>,>'Half'>,>'Bigger'>,>'Interpolation Nearest'>]> images>=>[image, half, bigger, stretch_near]> count>=> 4> for> i>in> range>(count):> >plt.subplot(>2>,>2>, i>+> 1>)> >plt.title(Titles[i])> >plt.imshow(images[i])> plt.show()> |
>
types de tests
>
Sortir:

Note: Une chose à garder à l'esprit lors de l'utilisation de la fonction cv2.resize() est que le tuple transmis pour déterminer la taille de la nouvelle image ((1050, 1610) dans ce cas) suit l'ordre (largeur, hauteur) contrairement à ce qui était prévu ( hauteur largeur).