12

Est-ce que quelqu'un sait comment ça marche et comment le faire en utilisant OpenCV? Le laplacien peut être calculé en utilisant OpenCV, mais le résultat n'est pas ce que j'attendais. Je veux dire que je m'attends à ce que l'image ait un contraste à peu près constant dans les zones d'arrière-plan, mais elle est noire et les bords sont blancs. Il y a beaucoup de bruit, même après le filtre Gauss. Je filtre l'image en utilisant un filtre gaussien, puis j'applique laplace. Je pense que ce que je veux est fait d'une manière différente.Laplacien de Gaussian: comment ça marche? (OpenCV)

Répondre

16

Laplacien de Gaussian est un filtre de détection de bord; la sortie est 0 dans les régions constantes («arrière-plan»), et positive ou négative lorsqu'il y a un contraste. La raison pour laquelle vous voyez du noir dans les régions d'arrière-plan est que OpenCV vous donne simplement la sortie brute; le type d'image que vous décrivez (gris sur fond, avec des bords positifs/négatifs en noir ou blanc) est produit après en mettant à l'échelle la sortie dans une plage appropriée.

La plage de sortie varie en fonction du noyau utilisé, mais elle doit toujours correspondre à une plage (-max, +max) autour de zéro où max est l'amplitude de sortie maximale du noyau de filtre; pour obtenir l'image de sortie "typique" dont vous avez besoin de l'échelle dans une gamme (0, 1) (ou (0, 255) si vous utilisez des images 8 bits).

Vous pouvez effectuer la mise à l'échelle nécessaire à l'aide de la fonction cvScale, avec le 1/(2*max) comme facteur d'échelle et le décalage 0.5. (Ou pour les images 8 bits, utilisez l'échelle 255/(2*max) et le décalage 128.)

+0

MERCI !!! Informations très utiles et cela a résolu mon problème! – maximus

+0

Vous êtes les bienvenus :) – tzaman