Ce n'est pas une réponse complète et précise, cependant, je vous laisse avec au moins une approche pour vous battre. (Je serais très heureux de savoir si vous avez des résultats).
Ils essaient essentiellement de résoudre le même problème.
une. Identification de la tache / tache b. Remplacer la tache par ce qui aurait été à la place de l'occlusion.
La nature de la question tente de résoudre le problème exact (dans un certain sens).
Ce n'est pas anodin. Cependant, dans les deux questions, il existe un modèle unique que vous pouvez exploiter.
Dans tous les cas, l'élément de superposition qui doit être retiré est appelé ici (tache, éblouissement, tache lumineuse), la superposition a une teinte / couleur unique et distincte qui se distingue des objets / scènes ordinaires.
Dans la plupart des cas, cette teinte / couleur de la superposition s'estompe dans la scène normale. La couleur résultante réelle change - cependant, il est préférable de modéliser la superposition en tant qu'intensité et couleur uniques avec une transpérence qui diminue successivement. Par conséquent, vous pouvez dire le pixel résultant
où est l'image observée, et est l'image libre d'occlusion souhaitée. Notez que l'alpha peut varier arbitrairement sur les pixels, mais de la superposition est considérée comme presque constante. et
P[x,y]=(1−α[x,y])∗S[x,y]+α[x,y]∗OverlayHue
S~[x,y]=(P[x,y]−OverlayHue∗α~[x,y])/(1−α~[x,y])
P[x,y]S[x,y]OverlayHueS~[x,y]α~[x,y] sont des valeurs estimées par votre algorithme pour les quantités respectives.
La valeur OverlayHue peut être estimée indépendamment en segmentant manuellement les régions de pixels où Tache ou Flash dominent clairement.
Vous pouvez supposer que \ alpha [x, y] est cohérent sur tous les canaux (c'est-à-dire R, G, B). Par conséquent, vous pouvez identifier les composants individuels comme suit:
S~R[x,y]=(PR[x,y]−OverlayHueR∗α~[x,y])/(1−α~[x,y])
S~G[x,y]=(PG[x,y]−OverlayHueG∗α~[x,y])/(1−α~[x,y])
S~B[x,y]=(PB[x,y]−OverlayHueB∗α~[x,y])/(1−α~[x,y])
Vous pouvez voir que lorsque est proche de 1 implique que la superposition obstrue complètement la scène et donc qu'aucune estimation de ne peut être bonne, vous devez éviter cela et conserver une valeur de référence pour l'itérer dans le temps.˜ SαS~
Malheureusement, vous avez encore plus de variables que d'équation, et cela est dû à la nature physique des pixels. Une couleur donnée aurait pu résulter soit de la propriété propre du pixel, soit de taches / reflets. Le meilleur pari est que vous commencez avec des pixels identifiés où vous savez que est 1, puis que vous décomposez progressivement la réduction de successivement. Sur une certaine itération, vous pouvez trouver les modèles.ααα
De plus, afin d'estimer finalement les points noirs purs, vous pouvez également appliquer une contrainte de lissage sur les pixels du voisinage (c'est-à-dire ainsi que ). ˜ α [x,y]S~[x,y]α~[x,y]
Ce n'est peut-être pas une solution parfaite, mais peut-être mieux que ce qui est le plus évident que l'écrêtage au niveau des pixels ou jouer avec la saturation, etc. ne le fais pas!)
J'espère que cela t'aides.