Heim > Artikel > Backend-Entwicklung > Implementierung von Bildfusion, Additionsoperation und Bildtypkonvertierung in Python (mit Code)
Was Ihnen dieser Artikel bringt, ist die Implementierung der Bildfusion, der Additionsoperation und der Bildtypkonvertierung in Python (mit Code). Ich hoffe, dass er einen gewissen Referenzwert hat wird dir helfen.
1. Numpy-Bibliotheksaddition
Die Operationsmethode ist: Zielbild = Bild 1 + Bild 2, und das Operationsergebnis ist Modulo-Operation übernommen.
1) Wenn der Pixelwert 2) Wenn der Pixelwert >255 ist, ist das Ergebnis ist Modulo 255 Das Ergebnis, zum Beispiel: (255+64)%255=64
2. OpenCV-Additionsoperation
Eine andere Methode besteht darin, die OpenCV-Bibliothek direkt aufzurufen, um das Bild zu implementieren Additionsoperation. Die Methode ist wie folgt:
Zielbild = cv2.add(Bild 1, Bild 2)
Das Ergebnis ist zu diesem Zeitpunkt eine Sättigungsoperation, das heißt:
1) Wenn der Pixelwert 2) Wenn der Pixelwert > 255 ist, ist das Ergebnis 255, zum Beispiel: (255+64) = 255
Die entsprechenden Codes für die beiden Methoden lauten wie folgt. Anzeige:
#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()
Das Ausgabeergebnis ist in der folgenden Abbildung dargestellt, wobei Ergebnis1 die erste Methode und Ergebnis2 die zweite Methode ist sind mehr Weißpunkte 255.
Hinweis: Größe und Art der in den Vorgang einbezogenen Bilder müssen konsistent sein. Unten sehen Sie das Ergebnis des Hinzufügens der Farbbilder.
Bildfusion bezieht sich normalerweise auf das Zusammenführen von zwei oder mehr Bildinformationen zu einem. In Bezug auf Bilder wird es zusammengeführt Bilder enthalten mehr Informationen und können für Menschen bequemer zu beobachten oder für die Computerverarbeitung geeignet sein. Wie in der folgenden Abbildung dargestellt, werden zwei unklare Bilder zusammengeführt, um ein klareres Bild zu erhalten.
Bildfusion fügt Koeffizienten und Helligkeitsanpassungen basierend auf der Bildaddition hinzu.
1) Bildaddition: Zielbild = Bild 1 + Bild 2
2) Bildfusion: Zielbild = Bild 1 * Koeffizient 1 + Bild 2 * Koeffizient 2 + Helligkeitsanpassungsbetrag
Die aufgerufene Hauptfunktion ist addWeighted, die Methode lautet wie folgt:
dst = cv2.addWeighter(scr1, alpha, src2, beta, gamma)
dst = src1 * alpha + src2 * beta + gamma
Der Parameter Gamma kann nicht weggelassen werden.
Der Code lautet wie folgt:
#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()
Es ist zu beachten, dass die Pixelgröße der beiden fusionierten Bilder gleich sein muss. Wie in der Abbildung unten gezeigt, sind es zwei RGB-Bilder mit Pixeln von 410*410 sind verschmolzen.
Stellen Sie verschiedene Anteile der Fusion wie folgt ein:
result = cv2.addWeighted(src1, 0.6, src2, 0.8, 10)
Bildtypkonvertierung bezieht sich auf die Konvertierung eines Typs in einen anderen Typ, z. B. die Konvertierung eines Farbbilds in ein Graustufenbild, BGR konvertieren Bilder in RGB-Bilder umwandeln. OPenCV bietet Konvertierungen zwischen mehr als 200 verschiedenen Typen, von denen die am häufigsten verwendeten drei Kategorien umfassen:
cv2.COLOR_BGR2GRAY
cv2.COLOR_BGR2RGB
cv2.COLOR_GRAY2BGR
Der Code lautet wie folgt:
#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()
Das Ausgabeergebnis ist wie unten dargestellt :
Wenn die Kanalkonvertierung verwendet wird, sieht das Ergebnis wie folgt aus:
result = cv2.cvtColor(src, cv2.COLOR_BGR2RGB)
Die Bildverarbeitung erfordert normalerweise die Konvertierung von Farbbildern in Graustufenbilder, bevor weitere Vorgänge vorgenommen werden. Ich hoffe, dass es Ihnen gefällt. Vor allem ich bin ein Klassenkamerad, der sich mit Bilderkennung und Bildverarbeitung beschäftigt.
Verwandte Empfehlungen:
Python implementiert die geometrische Bildtransformation
Python-Bild-Graustufentransformation und Bildarray-Operation
Das obige ist der detaillierte Inhalt vonImplementierung von Bildfusion, Additionsoperation und Bildtypkonvertierung in Python (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!