Redimensionner l'image dans MATLAB

Ammar Ali 20 janvier 2022
Redimensionner l'image dans MATLAB

Ce tutoriel abordera le redimensionnement d’une image à l’aide de la fonction imresize() dans Matlab.

Redimensionner une image à l’aide de la fonction imresize() dans MATLAB

Nous pouvons utiliser la fonction imresize() pour redimensionner les images dans Matlab. Cette fonction redimensionne les images en augmentant ou en diminuant leurs pixels. Par exemple, si nous redimensionnons une image deux fois de taille 100 par 100, alors sa taille finale sera de 200 par 200. Cette fonction crée plus de pixels en utilisant les valeurs de pixels déjà présentes dans le voisinage. Si nous voulons réduire la taille de l’image, nous pouvons utiliser une valeur d’échelle de redimensionnement inférieure à 1. Dans ce cas, la fonction imresize() supprimera des pixels de l’image en fonction de la valeur de redimensionnement. Si l’échelle de redimensionnement est de 0,5, le pixel deviendra la moitié. Le premier argument est l’image à redimensionner. Il peut être de type logique, numérique et catégoriel, mais les valeurs numériques doivent être réelles. Le deuxième argument est l’échelle, ou le facteur de redimensionnement, et il doit être un nombre positif. Par exemple, lisons une image à l’aide de la fonction imread() et redimensionnons-la à l’aide de la fonction imresize(), puis traçons les deux à l’aide de la fonction imshow(). Voir le code ci-dessous.

clc
RGB = imread('cat.jpg');
RI = imresize(RGB,10);
figure
imshow(RGB)
figure
imshow(RI)

Production :

redimensionner l’image à l’aide de la fonction imresize

L’image de gauche est l’image d’origine dans la sortie et l’image de droite est l’image redimensionnée. Vous pouvez également vérifier la taille de la variable dans laquelle les deux images de sortie sont stockées, et elle sera dix fois supérieure à la taille d’origine. Si l’image contient plus de deux dimensions, la fonction imresize() ne changera que la taille des deux premières dimensions, et les autres dimensions resteront les mêmes. Par exemple, dans le cas du code ci-dessus, si vous regardez l’espace de travail dans Matlab, vous saurez que la troisième dimension est la même dans l’image d’origine et redimensionnée. Au lieu d’utiliser un entier comme valeur d’échelle de redimensionnement, nous pouvons utiliser un vecteur pour définir la taille de l’image de sortie comme [100 100] pour obtenir une image de sortie de taille 100 par 100. Par exemple, redimensionnons l’image ci-dessus pour obtenir une image de taille 100 par 100. Voir le code ci-dessous.

clc
RGB = imread('cat.jpg');
RI = imresize(RGB,[100 100]);
figure
imshow(RGB)
figure
imshow(RI)

Production :

redimensionner l’image à la taille désirée

L’image de gauche est l’image d’origine dans la sortie et l’image de droite est l’image redimensionnée. Vous pouvez également voir la taille de l’image de sortie en haut de l’image de droite, qui est de 100 par 100. La troisième dimension n’est pas modifiée car elle contient les valeurs de couleur présentes dans l’image. On peut aussi redimensionner une image indexée à l’aide de la fonction imresize(). Une image indexée est différente d’une image RVB, elle est composée d’un tableau 2D avec des données d’octets stockées, et nous pouvons également y mettre un type de données différent comme double, int16, etc. Une image RVB contient le la couleur en tant que troisième dimension, mais l’image indexée contient la couleur en tant que palette de couleurs distincte. Pour redimensionner une image indexée, nous devons utiliser une deuxième variable à l’intérieur de la fonction imresize(), qui est la palette de couleurs de l’image d’entrée, que nous pouvons obtenir en utilisant une deuxième sortie de la fonction imread(). La fonction de redimensionnement nous donnera un nouveau tableau 2D et une nouvelle palette de couleurs. Pour tracer une image indexée, nous devons utiliser le tableau 2D et la carte. Par exemple, lisons une image indexée et redimensionnons-la. Voir le code ci-dessous.

clc
[OI,map] = imread("corn.tif");
[RI,Nmap] = imresize(OI,map,2);
figure
imshow(OI,map)
figure
imshow(RI,Nmap)

Production :

redimensionner l’image indexée

L’image de droite est l’image d’origine dans la sortie et l’image de gauche est l’image redimensionnée. On peut aussi changer la méthode d’interpolation, qui sert à redimensionner l’image. La méthode par défaut est bicubique, mais nous pouvons la changer en la plus proche ou bilinéaire en entrant une chaîne contenant le nom de la nouvelle méthode dans la fonction imresize(). Dans la méthode d’interpolation la plus proche, le pixel de sortie se voit attribuer la valeur du pixel dans lequel se trouve le point. Dans la méthode d’interpolation bilinéaire, le pixel de sortie se voit attribuer une valeur qui est une moyenne pondérée des pixels dans le voisinage 2 par 2 le plus proche. Dans la méthode d’interpolation bicubique, le pixel de sortie se voit attribuer une valeur qui est une moyenne pondérée des pixels dans le voisinage 4 par 4 le plus proche.

Auteur: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Article connexe - MATLAB Image