En dehors des opérations basique pure tels qu'on les connaite le redimensionnement, la rotation et le découpage d'image ont de nombreuse applications.
C'est tu par exemple que ces dernière sont très utilisé pour le Deep Learning ?
La raison à cela est simple, les réseau de neurones convolutif qui sont largement employé en deep learning ont une entrée de taille unique. Une des conséquence à cela est que tout les images qu'on peut soumettre à ces derniers doivent avoir une taille unique et donc en conséquence être redimensionnées.
Une autre exemple d'application de ce type d'opération et l'augmentation de données en vision par ordinateur, une technique qui permet d'améliorer les résultat des algorithme de reconnaissance faciale et de reconnaissance d'objet en générale et qui consiste simplement à redimensionner, à appliquer des rotation sur, à faire translater, les images de la base avec laquelle le réseau convolutif sera entrainer.
Imagine par exemple que pour éviter que le réseau surapprenne, on veuille 4 fois plus d'image que ce dont l'on est en possession à l'heure actuelle. Il suffit juste d'appliquer 4 rotation (45 °, 90°, 135 ° 180 ° par exemple) aux images de la base pour obtenir une base quatre fois plus grandes.
Sachant que si tu a lu mon article sur ma comparaison entre le Deep learning et le machine learning tu sais que les réseau de neurones convolutif requiert nettement plus d'image qu'un algorithme classique de machine learning. Quand aux GAN (Generative adversarial network) qui sont encore plus data-vore en données que les CNN, n'en parlons même pas de à qu'elle point ces petites opérations de redimensionment, rotation etc ... peuvent être utile.
Quoi qu'il en soit dans cette article, je vais aborder avec toi les points suivants:
Comment redimensionner une image
Comment appliquer une rotation à une image
Comment découper une image
Comment coller une image dans une autre
Comme avec opencv-python une image est de type numpy array, il est possible d'obtenir ses dimension actuelle en utilisant l'attribut shape.
image.shape
Plus spécifiquement pour redimenssioner une image avec OpenCV il faudra faire appel à la fonction resize comme suit :
img=cv2.resize(img,dim, interpolation = cv2.INTER_AREA)
elle prend en paramètre l'image, les dimension de la nouvelle image, la fonction d'interpolation qui sera utilisé pour redimensioner l'image. Il existe de nombreuse fonction d'interpolations (cv2.INTER_NEAREST, cv2.INTER_LINEAR, etc....) mais globalement cv2.INTER_AREA fera l'affaire la majorité du temps.
Quand vous redimensionner une image.
Source :
https://stackoverflow.com/questions/43892506/opencv-python-rotate-image-without-cropping-sides