Die Fotos, die Sie aufnehmen, sind möglicherweise ungewollt verschwommen. Daher besteht die Notwendigkeit, Trübungen durch Verwendung der Bildverarbeitung für Trübungsbilder zu entfernen.
Wenn Sie sich die folgende Website ansehen, verfügen Adobe-Produkte auch über eine Funktion zur Trübungsentfernung. site: https://blogs.adobe.com/japan/cc-adobe-stock-contributor-j-curbon-lightroom-how-to-goto-2/
Dieses Mal werde ich eine einfache Methode zur Entfernung von Trübungen mit Python und OpenCV vorstellen.
detailEnhanceFilter
Dieses Mal verwenden wir den detailEnhanceFilter, der beim nicht-fotorealistischen Rendern von OpenCV implementiert ist.
Bitte überprüfen Sie die folgende Website für Details der Bibliothek. https://docs.opencv.org/master/df/dac/group__photo__render.html
image_processing.py
from PIL import Image
import numpy as np
import cv2
def main():
img = np.array(Image.open('images/input.jpg'))
dst = cv2.detailEnhance(img, sigma_s=10, sigma_r=0.15)
Image.fromarray(dst).save('images/result.jpg')
if __name__ == '__main__':
main()
Für die Eingabe habe ich das Bild der zuvor eingeführten Site ausgeliehen. site: https://blogs.adobe.com/japan/cc-adobe-stock-contributor-j-curbon-lightroom-how-to-goto-2/
~~ Ist es nicht verdächtig ... ~~ Sie können sehen, dass die Kanten als Name des erweiterten Erweiterungsfilters erweitert werden! Es besteht jedoch der Eindruck, dass die Pixel an den Rändern weiß sind. Diese Konvertierungsfähigkeit mit nur einer Funktionslinie! OpenCV ist großartig. Dieses Mal wollte ich nur den Effekt des detailEnhance-Filters ausprobieren, also habe ich ihn überhaupt nicht vorverarbeitet. Der Eindruck ist, dass eine Erhöhung der Vorbehandlung die Situation verbessern wird. Die Parameter sind ebenfalls nicht angepasst. Wenn Sie interessiert sind, versuchen Sie es bitte. Schließlich ist die Version der Bibliothek wie folgt.
version | |
---|---|
Python | 3.7.6 |
opencv-python | 4.1.2.30 |
numpy | 1.18.1 |
pillow | 7.0.0 |
Recommended Posts