【发布时间】:2016-12-29 03:20:39
【问题描述】:
我正在尝试对图像进行降噪,然后提取包含手写线条的图像的骨架。我希望这条线是连续的和实心的,但我使用的方法无法做到这一点并且相对较慢。这是原始图像: Original Image
Morphed 在变形后的图像上,您可以在右下方看到一个小岛。
上面的细化图像显示线在末端附近断开。
还有其他方法可以达到预期的效果吗?
我的代码如下所示:
int morph_elem = 2;
int morph_size = 10;
int morph_operator = 0;
Mat origImage = imread(origImgPath, CV_LOAD_IMAGE_COLOR);
medianBlur(origImage, origImage, 3);
cvtColor(origImage, origImage, COLOR_RGB2GRAY);
threshold(origImage, origImage, 0, 255, THRESH_OTSU);
Mat element = getStructuringElement(morph_elem, Size(2 * morph_size + 1, 2 * morph_size + 1), cv::Point(morph_size, morph_size));
morphologyEx(origImage, origImage, MORPH_OPEN, element);
thin(origImage, true, true, true);
【问题讨论】:
-
在二值图像上(阈值后),您可以
findContours,并删除小的图像,例如使用contourArea