Bonjour,
Pour ceux et celles qui aiment "bidouiller" un peu de code
inspiré de :
https://github.com/Tschucker/Python-Auto...ting.ipynb
photo originale traitée avec docteur néga dt :
création d'un masque avec dt à base de masque paramétrique seuil des détails et coloriser en noir les zone blanches à ne pas corriger:
Code Python sur ces 2 images:
Photo dépoussiérée :
Avec quelques 10 retouches supplémentaires dans dt pour peaufiner. (peux mieux faire)
Cordialement
PS: je n'arrive pas à faire marcher Gimp resynthetizer sur ma machine alors...
Pour ceux et celles qui aiment "bidouiller" un peu de code
inspiré de :
https://github.com/Tschucker/Python-Auto...ting.ipynb
photo originale traitée avec docteur néga dt :
création d'un masque avec dt à base de masque paramétrique seuil des détails et coloriser en noir les zone blanches à ne pas corriger:
Code Python sur ces 2 images:
Code :
#!/usr/bin/env python3
'''
inspiré de
https://github.com/Tschucker/Python-Automatic-Sensor-Dust-Removal/blob/main/ocv_dust_inpainting_example/ocv_sensor_dust_inpainting.ipynb
@author: coelb
'''
import numpy as np
import cv2
sourcename="im.png"
maskname = "mask.png"
image = cv2.imread(sourcename, cv2.IMREAD_UNCHANGED)
# luminance
select = np.array([[0.114, 0.587, 0.299 ]])
image16gray = cv2.transform(image, select)
#-------------------------- traitement du masque 8 bits
mask8 = cv2.imread(maskname)
#cv2.imwrite('sourcegray.png', image16gray)
maskgray = cv2.transform(mask8, select)
#cv2.imwrite('maskgray.png', maskgray)
#--------------------seuillage entre 2 valeurs 8 bits à ajuster
global_thresh = cv2.threshold(maskgray,185,240,cv2.THRESH_BINARY)[1]
cv2.imwrite('global_threshold.png', global_thresh)
#-----------Filter
# grossisement des zones de corrections à ajuster
KERNEL = np.ones((10,10), dtype=int)*10
mask_filt = cv2.filter2D(global_thresh,-1 ,KERNEL)
cv2.imwrite('filter.png', mask_filt)
#-----------------------------corrections image
# rayon à ajuster
radius = 10
flags = cv2.INPAINT_NS # cv2.INPAINT_NS ou cv2.INPAINT_TELEA
cimg_inpaint = cv2.inpaint(image16gray, mask_filt, radius, flags=flags)
cv2.imwrite('auto_dust_inpainting.png', cimg_inpaint)
Photo dépoussiérée :
Avec quelques 10 retouches supplémentaires dans dt pour peaufiner. (peux mieux faire)
Cordialement
PS: je n'arrive pas à faire marcher Gimp resynthetizer sur ma machine alors...
Mes photos
dt compilé en local, dernière version officielle et master
dt compilé en local, dernière version officielle et master