2016-03-28 1 views
0

J'utilise actuellement la fonction ci-dessous pour supprimer le bruit de deux images de taille (240x720). Je suis en train de calculer ceci sur mon ordinateur mais je voudrais l'implémenter en temps réel. Cependant, sur mon ordinateur, la fonction entraîne des retards importants dans le programme. Existe-t-il une alternative à la suppression du bruit d'une image qui pourrait fonctionner en temps réel? Flou gaussien peut-être?Alternative à OpenCV fastNlMeansDenoising pour une application en temps réel?

fastNlMeansDenoising(ipmOfLeftLaneRobust, ipmOfLeftLaneRobust,10,7,21); 

Répondre

0

Etant donnée une fonction

fastNlMeansDenoising(InputArray src, OutputArray dst, float h=3, 
    int templateWindowSize=7, int searchWindowSize=21); 

Lorsque les approches templateWindowSize 1, le filtre devient un filtre bilatéral boîte.

Lorsque le terme h approche de l'infini, le filtre devient un filtre de flou de boîte.

Pour l'un ou l'autre, la mise en œuvre est exhaustive.

Une alternative simple est d'essayer d'abord les deux cas spéciaux optimisés: cv::boxFilter et cv::bilateralBlur.

+0

Le filtre bilatéral de boîte semble fonctionner très bien, tout en maintenant les bords des objets dans l'image. Je vous remercie. –

0

Une option à considérer peut-être utiliser la version CUDA de fastNIMeansDenoising, car il offre speedup important supposant que vous avez un GPU décent (vrai pour la plupart des fonctionnalités de OpenCV en général). Sauf que, cela dépend du type de bruit que vous avez affaire, mais si c'est, disons, le bruit de sel et de poivre, l'utilisation de la fonction de flou médian donne généralement de bons résultats. Le flou gaussien est une autre bonne option si votre bruit est plus général.