Maison  >  Article  >  développement back-end  >  Implémentation de fusion d'images, opération d'addition et conversion de type d'image en python (avec code)

Implémentation de fusion d'images, opération d'addition et conversion de type d'image en python (avec code)

不言
不言original
2018-09-08 17:18:437581parcourir

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. Opération d'ajout d'image

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.


Implémentation de fusion dimages, opération daddition et conversion de type dimage en python (avec code)

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.


Implémentation de fusion dimages, opération daddition et conversion de type dimage en python (avec code)

2. Fusion d'images

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.

Implémentation de fusion dimages, opération daddition et conversion de type dimage en python (avec code)

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.

Implémentation de fusion dimages, opération daddition et conversion de type dimage en python (avec code)

Définissez différentes proportions de fusion comme suit :
result = cv2.addWeighted(src1, 0.6, src2, 0.8, 10)


Implémentation de fusion dimages, opération daddition et conversion de type dimage en python (avec code)

3. Conversion de type d'image

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 :


Implémentation de fusion dimages, opération daddition et conversion de type dimage en python (avec code)

Si la conversion de canal est utilisée, le résultat est le suivant :
result = cv2.cvtColor(src, cv2. COLOR_BGR2RGB)


Implémentation de fusion dimages, opération daddition et conversion de type dimage en python (avec code)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn