Les photos que vous prenez peuvent être accidentellement floues. Par conséquent, il est nécessaire d'éliminer le voile en utilisant un traitement d'image sur les images de voile.
Si vous regardez réellement le site suivant, les produits Adobe ont également une fonction de suppression de la brume. site: https://blogs.adobe.com/japan/cc-adobe-stock-contributor-j-curbon-lightroom-how-to-goto-2/
Cette fois, je présenterai une méthode simple de suppression de brume utilisant Python et OpenCV.
detailEnhanceFilter
Cette fois, nous utiliserons le detailEnhanceFilter implémenté dans le rendu non photoréaliste d'OpenCV.
Veuillez consulter le site suivant pour plus de détails sur la bibliothèque. 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()
Pour l'entrée, j'ai emprunté l'image du site présenté plus tôt. site: https://blogs.adobe.com/japan/cc-adobe-stock-contributor-j-curbon-lightroom-how-to-goto-2/
~~ N'est-ce pas suspect ... ~~ Vous pouvez voir que les bords sont améliorés comme le nom du filtre d'amélioration avancé! Cependant, on a l'impression que les pixels autour des bords sont blancs. Cette capacité de conversion avec une seule ligne de fonction! OpenCV est génial. Cette fois, je voulais essayer l'effet du filtre detailEnhance uniquement, donc je ne l'ai pas prétraité du tout. L'impression est que l'augmentation du prétraitement améliorera la situation. Les paramètres sont également non ajustés. Si vous êtes intéressé, essayez-le. Enfin, la version de la bibliothèque est la suivante.
version | |
---|---|
Python | 3.7.6 |
opencv-python | 4.1.2.30 |
numpy | 1.18.1 |
pillow | 7.0.0 |
Recommended Posts