Как сгладить кривые (контуры) в OpenCV?

Я работаю над черно-белым изображением, как первый из ссылки: http://imageshack.us/g/33/firstwm.png/ Он имеет много «шума», поэтому я применил медианный фильтр над ним, чтобы сгладить его, таким образом, получая второе изображение.

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

После этого я получаю контуры и нарисуйте их на другое изображение, как 3-я фотография из ссылки. Моя проблема состоит в том, что контуры все еще немного пикселированы (Edgy). Есть ли способ сгладить B & W изображение еще больше, чтобы получить лучшие контуры? Или может сделать что-то с контурами. Я также попробовал расшириться и разрушаться с разными ядрами, но проблема остается прежней. Спасибо за все, что помогает.

Редактировать: Также попробовал:

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

такие же результаты, как медианный фильтр, хорошо, но все же оставляет некоторых пикселированных контуров.

11
задан Adrian 14 September 2011 в 13:04
поделиться