Kau*_*rya 12 ocr image-processing image-segmentation
我想即时p字元素EPSHTEIN的论文(检测与描边宽度自然场景文本转换(2010) )在自然图像文本检测.第一步是边缘检测.
我在文本中得到了一些额外的边缘.我应该如何删除它们?
原始图片:
我的边缘检测:

在示例中,您可以在文本 'WHY HURRY'中看到额外的边缘
我在Matlab中尝试过这些步骤:
% contrast enhancement
I_adjust = imadjust(I);
% dilation & erosion
se = strel(ones(3,3));
I_dilate = imdilate(I_adjust, se);
I_final = imerode(I_dilate, se);
% gaussian smoothing
h_mask = fspecial('gaussian');
I_final = imfilter(I_final,h_mask);
figure; imshow(I_final);
BW_canny = edge(I_final,'canny');
figure; imshow(BW_canny);
Run Code Online (Sandbox Code Playgroud)
根据belisarius的建议,我发现均值平移滤波器对于文本区域分割非常有效.现在我在执行Stroke Width变换时遇到了另一个问题(参见Epshtein的论文).
即使对于'S',笔划宽度也适用于像'H''Y'这样的字符,因为如果我们沿着渐变方向前进,相应的边缘通常是恒定的距离.
问题来自像'W'这样的字符.对于第一次上行程的左边缘的一部分,我们得到第二个上行的右边缘作为其对应的边缘.而另一部分,我们获得第一次上冲的右边缘.这引入了'W'区域的笔划宽度的显着变化,导致根据纸张将其称为非文本区域.
有谁能建议任何解决方案?
Dr.*_*ius 10
Mean Shift Filter在边缘检测之前使用a .Mathematica中的示例:
i = Import["http://img839.imageshack.us/img839/28/whyhurry.jpg"];
iM = MeanShiftFilter[i, 2, .15, MaxIterations -> 10]
EdgeDetect[iM]
Run Code Online (Sandbox Code Playgroud)
输出:

