我正在处理一张类似于此链接中的黑白图像的第一张图片:http://imageshack.us/g/33/firstwm.png/。它有很多“噪声”,所以我对其应用了一个中值滤波器来平滑它,从而得到了第二张图片。
cvSmooth(TempImage, TempImage, CV_MEDIAN, 5, 0);
在这之后,我获得了轮廓并将它们绘制在另一张图像上,就像链接中的第三张图片一样。
我的问题是,轮廓仍然有点像素化(有棱角)。是否有一种方法可以使黑白图像更加平滑,以获得更好的轮廓?或者通过对轮廓进行处理来解决问题。
我还尝试了不同内核的膨胀和腐蚀,但问题仍然存在。
感谢任何帮助。
编辑:
cvSmooth(TempImage, TempImage, CV_GAUSSIAN, 9, 9, 3);
cvThreshold(TempImage, TempImage, 127, 255, CV_THRESH_BINARY);
中值滤波可以得到相同的结果,但仍会留下一些像素化的轮廓。