Logarithmische Bildtransformation

  Die logarithmische Transformation von Graustufenbildern ist eine gängige Bildverbesserungstechnik, mit der der Kontrast und die Details von Bildern verbessert werden. Diese Transformation kann den Logarithmus der Pixelwerte des Originalbilds übernehmen, wodurch die kleineren Pixelwerte auf einen größeren Bereich erweitert und gleichzeitig die größeren Pixelwerte komprimiert werden, um bessere visuelle Effekte zu erzielen.
  Die logarithmische Transformationsformel lautet wie folgt:
s = c ⋅ log ⁡ ( 1 + r ) s = c \cdot \log(1 + r)S=Clo g ( 1+r )
  wosss ist der Pixelwert des Ausgabebildes. ccc ist ein Verstärkungsparameter, der zum Anpassen des Kontrasts verwendet wird. rrr ist der Pixelwert des Eingabebildes.
  Der Schlüssel zu dieser Transformation liegt in den Eigenschaften der logarithmischen Funktion, die kleinere positive Zahlen auf einen größeren Bereich abbildet und gleichzeitig größere positive Zahlen komprimiert. Dies ist nützlich, um die Details in Bildbereichen mit geringer Helligkeit hervorzuheben und eine Überbelichtung in Bereichen mit hoher Helligkeit zu unterdrücken.
  Im Folgenden sind einige Merkmale und Verwendungszwecke der logarithmischen Transformation aufgeführt:
  1.Verbessern Sie Details mit geringer Helligkeit: Durch die logarithmische Transformation können die Details von Bereichen mit geringer Helligkeit in einem Bild verbessert werden, wodurch sie deutlicher sichtbar werden.
  2.Überbelichtung bei hoher Helligkeit unterdrücken: Durch die logarithmische Transformation kann die Überbelichtung in Bereichen mit hoher Helligkeit im Bild unterdrückt und das Bild dadurch glatter gemacht werden.
  3.Erhöhen Sie den Gesamtkontrast: Durch eine logarithmische Transformation der Pixelwerte des Bildes können Sie den Gesamtkontrast des Bildes erhöhen und es optisch ansprechender machen.
  4.Bildkomprimierung: Durch die logarithmische Transformation können größere Pixelwerte komprimiert werden, wodurch die Details im Bild stärker hervorgehoben werden.
  Es ist zu beachten, dass bei der Durchführung einer logarithmischen Transformation die Pixelwerte häufig zuerst übersetzt werden, um sicherzustellen, dass alle Pixelwerte positiv sind, da der Bereich der logarithmischen Funktion erfordert, dass der Eingabewert größer als Null ist .
  Bei der Code-Implementierung kann die logarithmische Transformationsfunktion von Pixelwerten zur Verarbeitung von Graustufenbildern verwendet werden. Das Folgende ist ein einfacher Python-Beispielcode:

import cv2
import numpy as np

class Log_trans:
    def __init__(self,input_path,c):
        self.input_path=input_path
        self.c=c

    def logarithmic_transform(self):
        img=cv2.imread(self.input_path,flags=0)# 读取灰度图像
        if img is None:
            print('Unable to load image!')
            return 0
        else:
            print('Load image successfully!')
            img_trans=np.uint8((self.c)*np.log1p(img))

            self.img_show(img,img_trans)

    def img_show(self,img,img_trans):
        cv2.imshow('img',img)
        cv2.imshow('img_trans',img_trans)
        cv2.waitKey()
        cv2.destroyAllWindows()

# 输入图像文件的路径
imgfile = "./Images/cat.jpg"
# 设置增益参数
c=20
img=Log_trans(imgfile,c)
img.logarithmic_transform()

  In diesem Beispiel cdient der Parameter zur Anpassung der Kontrastverstärkung und kann bei Bedarf angepasst werden.

Guess you like

Origin blog.csdn.net/qq_50993557/article/details/132177383