Gaußscher Filteralgorithmus und Routinen

Der Gaußsche Filteralgorithmus ist eine lineare Glättungsfiltermethode, die zum Verwischen von Bildern oder zum Entfernen von Rauschen verwendet wird. Es handelt sich um eine auf der Gaußschen Funktion basierende Faltungsoperation, die einen Glättungseffekt erzielt, indem für jedes Pixel des Bildes ein gewichteter Durchschnitt erstellt wird.

Im Folgenden sind die Schritte des Gaußschen Filteralgorithmus aufgeführt:

  1. Definieren Sie einen zweidimensionalen Gaußschen Kernel (auch Filter genannt), dessen Größe durch die Filtergröße und die Standardabweichung (Sigma) bestimmt wird. Übliche Gaußsche Kernelgrößen sind 3x3, 5x5, 7x7 usw.

  2. Wenden Sie auf jedes Pixel des Bildes einen Gaußschen Kernel an.

  3. Für jedes Pixel wird ein gewichteter Durchschnitt zwischen ihm und den Pixeln in der umliegenden Nachbarschaft berechnet. Das Gewicht wird anhand der numerischen Verteilung des Gaußschen Kernels bestimmt. Je weiter vom zentralen Pixel entfernt, desto geringer ist das Gewicht des Pixels.

  4. Verwenden Sie den gewichteten Durchschnitt als neuen Wert des aktuellen Pixels.

  5. Wiederholen Sie die Schritte 2 bis 4, bis das gesamte Bild durchlaufen ist.

Die Kernidee des Gaußschen Filteralgorithmus besteht darin, mithilfe der Gaußschen Funktion die Ausbreitung von Pixelwerten zu simulieren, sodass der Einfluss umgebender Pixel mit zunehmendem Abstand schwächer wird. Dadurch wird das Bild geglättet, während die Gesamteigenschaften des Bildes erhalten bleiben.

In praktischen Anwendungen können die Größe und Standardabweichung des Gaußschen Kernels nach Bedarf angepasst werden. Größere Filtergrößen und kleinere Standardabweichungen können zu einer stärkeren Glättung führen, können jedoch Details verschwimmen lassen; kleinere Filtergrößen und größere Standardabweichungen können mehr Details bewahren, haben aber möglicherweise eine schwächere Rauschunterdrückung. .

Es ist zu beachten, dass der Gaußsche Filteralgorithmus eine bessere Rauschunterdrückungswirkung auf Gaußsches Rauschen und einige andere Arten von Rauschen hat. Für isoliertes Ausreißerrauschen wie Salz- und Pfefferrauschen ist der Gaußsche Filteralgorithmus jedoch nicht die beste Wahl. Andere Filtermethoden können in Betracht gezogen werden, beispielsweise die Medianfilterung.

Das Folgende ist eine Routine zum Implementieren der Gaußschen Filterung mit Python und OpenCV:

import cv2

def gaussian_filter(image, kernel_size, sigma):
    # 应用高斯滤波器
    filtered_image = cv2.GaussianBlur(image, (kernel_size, kernel_size), sigma)
    return filtered_image

# 读取图像
image = cv2.imread('input.jpg')

# 将图像转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 应用高斯滤波器
filtered_image = gaussian_filter(gray_image, kernel_size=5, sigma=1.0)

# 显示原图像和滤波后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Filtered Image', filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Im obigen Code definieren wir eine Funktion namens gaussian_filter, die das Bild, die Filtergröße und den Sigma-Wert als Parameter akzeptiert und das Gauß-gefilterte Bild zurückgibt. Innerhalb der Funktion verwenden wir die Funktion cv2.GaussianBlur, um Gaußsche Filteroperationen durchzuführen, wobei der erste Parameter das Eingabebild, der zweite Parameter die Größe des Filters und der dritte Parameter der Sigma-Wert ist.

In praktischen Anwendungen können je nach Bedarf die geeignete Filtergröße und der Sigma-Wert ausgewählt werden. Eine kleinere Filtergröße und ein größerer Sigma-Wert können das Bild besser glätten, können jedoch zu einem Detailverlust führen; eine größere Filtergröße und ein kleinerer Sigma-Wert können mehr Details bewahren, können größeres Rauschen jedoch möglicherweise nicht effektiv entfernen.

Bitte stellen Sie sicher, dass Sie „input.jpg“ durch Ihren eigenen Bilddateipfad ersetzen, bevor Sie den Beispielcode ausführen.

Acho que você gosta

Origin blog.csdn.net/wangjiaweiwei/article/details/131668844
Recomendado
Clasificación