Comment lisser les courbes (contours) dans OpenCV?

Je suis en train de travailler sur un noir&blanc de l'image tout comme la première à partir du lien :
http://imageshack.us/g/33/firstwm.png/
Il a beaucoup de "bruit" donc, j'ai appliqué un filtre Médian sur elle pour la lisser, obtenant ainsi la deuxième photo.

cvSmooth(TempImage, TempImage, CV_MEDIAN, 5, 0);

Après cela je reçois les contours et les dessiner sur une autre image, comme par exemple la 3ème photo à partir du lien.
Mon problème est que les contours sont encore un peu pixélisée(edgy). Est-il un moyen pour lisser le B&W l'image encore plus afin d'obtenir de meilleures contours? Ou peut-être faire quelque chose avec les contours.
J'ai aussi essayé de se Dilater et de s'Éroder avec les différents noyaux, mais le problème reste le même.
Merci à vous pour tout ce qui aide.

EDIT:
Aussi essayé:

cvSmooth(TempImage, TempImage, CV_GAUSSIAN, 9, 9, 3);
cvThreshold(TempImage, TempImage, 127, 255, CV_THRESH_BINARY);

Mêmes résultats que le filtre médian, ok, mais laisse encore certains pixélisé contours.

source d'informationauteur Adrian | 2011-09-14