[PYTHON] Exécutez NL-means pour chaque canal RVB

J'ai remarqué quelques précautions lors de la suppression du bruit des images couleur avec NL-Means (NLM). Lorsque j'ai supprimé le bruit des photos de fleurs de cerisier Shuzenji et de mejiro avec fastNLMeansDenoigingColored () d'OpenCV2, la couleur des pétales et des bâtons des fleurs de cerisier s'est envolée.

J'ai pensé à la cause, mais probablement à l'intérieur de fastNLMeansDenoigingColored, après avoir converti RVB en valeur de luminosité (L), calculez la similitude entre les correctifs et lissez avec un poids commun pour tous les canaux RVB. J'ai pensé que ça pourrait l'être. En conséquence, il est probable que la couleur des pétales et des portées ne se soit pas beaucoup reflétée dans le calcul de la similitude entre les patchs et que la couleur s'est estompée.

Par conséquent, j'ai pensé que ce problème pouvait être évité en appliquant le NLM indépendamment à chaque canal RVB et en faisant des expériences.

fig.png

En appliquant NLM pour chaque canal de couleur, vous pouvez voir que le bruit peut être supprimé tout en préservant la couleur des pétales et des portées.

Le code source est ci-dessous. https://github.com/kibo35/restoration/blob/master/NLM/nlm_for_each_color.py

(Une addition) Merci de le signaler, monsieur ktgw0316. Nous avons confirmé que le code que vous avez débogué résout le problème de la décoloration.

L'image après traitement avec fastNLMeansDenoigingColored a semblé s'estomper car le deuxième argument, dst, était manquant.

Recommended Posts

Exécutez NL-means pour chaque canal RVB
Changer PYTHONPATH pour chaque virtualenv