首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符提取-点与字符是分开识别的

字符提取-点与字符是分开识别的
EN

Stack Overflow用户
提问于 2013-02-14 04:26:26
回答 1查看 3K关注 0票数 1

我正在为一种区域语言做字符识别。在提取图像时,点被单独标识为字符。

代码语言:javascript
复制
%% Plot Bounding Box
for n=1:size(propied,1)
rectangle('Position',propied(n).BoundingBox,'EdgeColor','g','LineWidth',2)
end
hold off

%% Characters being Extracted
figure
 for n=1:Ne
 [r,c] = find(L==n);
 n1=imagen(min(r):max(r),min(c):max(c));
 imshow(~n1);
 end

原码:http://www.mathworks.com/matlabcentral/fileexchange/22922-image-segmentation-extraction

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 10:06:08

由于您正在进行字符/文本识别,因此您更可能需要单词或文本行的集合,而不是单个字符。如果你真的想做后者,那么在你识别了单个单词之后,它会更健壮。

因此,这里最简单的方法是使用标准的形态学开口符(假设文本是黑色的,否则使用闭合)。从一个大的水平结构元素(SE)开始。使用此SE应用一个开口会将您的图像分割为多行文本。在每一行中,您使用较短的水平SE来获取单个单词。然后,对于每个单词,您可以考虑一个垂直SE来打开,这样它就可以连接重音和其他排版细节。

例如,以下是一个输入图像,其洞口的水平SE半径为35,水平SE半径为7,洞口的垂直SE半径为7。

我没有在独立的组件中应用第三个操作,但您应该这样做,以避免连接两行文本的风险。当然,这都是假设文本的水平直线。在最终图像上绘制边界框可以得到您想要的result

请注意,一些字母("ty“和"ny")在开头是连接的,因此它们在此输出中显示为单个字母。这是一个需要处理的单独问题,您可能会担心也可能不会。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14862456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档