我正在处理一个黑白图像,就像链接中的第一个图像一样:http: //imageshack.us/g/33/firstwm.png/ 它有很多“噪音”,所以我在它上面应用了一个中值过滤器来平滑它,从而得到第二张图片。
cvSmooth(TempImage, TempImage, CV_MEDIAN, 5, 0);
在此之后,我得到轮廓并将它们绘制在另一个图像上,例如链接中的第三张图片。我的问题是轮廓仍然有点像素化(前卫)。有没有办法使黑白图像更加平滑以获得更好的轮廓?或者也许对轮廓做点什么。我也尝试过使用不同内核的 Dilate 和 Erode,但问题仍然存在。感谢您提供的任何帮助。
编辑:也试过:
cvSmooth(TempImage, TempImage, CV_GAUSSIAN, 9, 9, 3);
cvThreshold(TempImage, TempImage, 127, 255, CV_THRESH_BINARY);
与中值滤波器相同的结果,好的,但仍然留下一些像素化轮廓。