Maison >développement back-end >Tutoriel Python >Implémentation de fusion d'images, opération d'addition et conversion de type d'image en python (avec code)
Le contenu de cet article concerne l'implémentation de la fusion d'images, l'opération d'addition et la conversion de type d'image en python (avec code). J'espère qu'il le fera. t'aider.
1. Ajout de la bibliothèque Numpy
La méthode d'opération est : image cible = image 1 + image 2, et le résultat de l'opération est prise modulo Opération.
1) Lorsque la valeur du pixel est 2) Lorsque la valeur du pixel est >255, le résultat est modulo 255 Le résultat, par exemple : (255+64)%255=64
2 Opération d'ajout OpenCV
Une autre méthode consiste à appeler directement la bibliothèque OpenCV pour implémenter l'image. opération d'addition. La méthode est la suivante :
Image cible = cv2.add(image 1, image 2)
Le résultat à ce moment est une opération de saturation, c'est-à-dire :
1) Lorsque la valeur du pixel 2) Lorsque la valeur du pixel > 255, le résultat est 255, par exemple : (255+64) = 255
Les codes correspondants pour les deux méthodes sont les suivants Affichage :
#encoding:utf-8import cv2 import numpy as np import matplotlib.pyplot as plt#读取图片img = cv2.imread('picture.bmp') test = img #方法一: Numpy加法运算result1 = img + test #方法二: OpenCV加法运算result2 = cv2.add(img, test) #显示图像 cv2.imshow("original", img) cv2.imshow("result1", result1) cv2.imshow("result2", result2) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
Le résultat de sortie est comme indiqué dans la figure ci-dessous, où result1 est la première méthode, result2 est la deuxième méthode , et il y a plus de points blancs 255.
Remarque : La taille et le type d'images impliquées dans l'opération doivent être cohérents. Vous trouverez ci-dessous le résultat de l’ajout des images couleur.
La fusion d'images fait généralement référence à la fusion de 2 informations d'image ou plus en une seule. En termes d'images, fusionnées les images contiennent plus d’informations et peuvent être plus faciles à observer ou à traiter par ordinateur. Comme le montre la figure ci-dessous, deux images floues sont fusionnées pour obtenir une image plus claire.
La fusion d'images ajoute des coefficients et des ajustements de luminosité en fonction de l'ajout d'images.
1) Ajout d'image : image cible = image 1 + image 2
2) Fusion d'image : image cible = image 1 * coefficient 1 + image 2 * coefficient 2 + montant de réglage de la luminosité
La fonction principale appelée est addWeighted, la méthode est la suivante :
dst = cv2.addWeighter(scr1, alpha, src2, beta, gamma)
dst = src1 * alpha + src2 * beta + gamma
Le paramètre gamma ne peut pas être omis.
Le code est le suivant :
#encoding:utf-8import cv2 import numpy as np import matplotlib.pyplot as plt #读取图片 src1 = cv2.imread('test22.jpg') src2 = cv2.imread('picture.bmp') #图像融合 result = cv2.addWeighted(src1, 1, src2, 1, 0) #显示图像 cv2.imshow("src1", src1) cv2.imshow("src2", src2) cv2.imshow("result", result) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
Il convient de noter que la taille des pixels des deux images fusionnées doit être la même. Comme le montre la figure ci-dessous, deux images RVB. avec des pixels de 410*410 sont fusionnés.
Définissez différentes proportions de fusion comme suit :
result = cv2.addWeighted(src1, 0.6, src2, 0.8, 10)
La conversion de type d'image fait référence à la conversion d'un type en un autre type, comme la conversion d'une image couleur en une image en niveaux de gris, Convertir BGR. images en images RVB. OPenCV propose des conversions entre plus de 200 types différents, dont les plus couramment utilisés incluent 3 catégories, comme suit :
cv2.COLOR_BGR2GRAY
cv2.COLOR_BGR2RGB
cv2.COLOR_GRAY2BGR
Le code est le suivant :
#encoding:utf-8import cv2 import numpy as np import matplotlib.pyplot as plt #读取图片 src = cv2.imread('01.bmp') #图像类型转换 result = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) #显示图像 cv2.imshow("src", src) cv2.imshow("result", result) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
Le résultat de sortie est le suivant : ci-dessous :
Si la conversion de canal est utilisée, le résultat est le suivant :
result = cv2.cvtColor(src, cv2. COLOR_BGR2RGB)
Le traitement d'image nécessite généralement de convertir des images couleur en images en niveaux de gris pour des opérations ultérieures. J'espère que vous aimerez davantage de connaissances. il , en particulier les étudiants faisant de la reconnaissance d'images et du traitement d'images.
Recommandations associées :
Python implémente la transformation géométrique de l'image
La transformation des niveaux de gris de l'image Python et le fonctionnement du tableau d'images
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!