不能识别字母标签使用ocr图像()函数。

27日视图(30天)
你好,我尝试使用OCR()函数来识别字母标签(I / p & o / p)在下面的图片中包含一个逻辑电路。图像是灰度uint8格式,所以我将它转换为RGB格式和试图利用OCR()函数来识别标签。但是功能不工作。这是由于图像中出现的噪声。有人可以请建议使它的工作方式。
如果OCR()函数不能被使用,请建议另一个函数,可以使用这些图片。
我试着使用模式识别,它的工作原理,但我寻找一些函数,可用于定位图像中字母的标签和周围画一个圆。

接受的答案

Birju帕特尔
Birju帕特尔 2015年3月19日
嗨,杰克,
你需要做一些预处理OCR图像。这就是我做的工作:
img = imread (“C.gif”);
%的OCR图像大一点帮助
img = imresize (img, 3);
imshow (img)
% binarize形象
级= graythresh (img);
BWOrig = im2bw (img、级);
图中,imshow (BWOrig)
%先删除电路使用连接成分分析。
BWComplement = ~ BWOrig;
CC = bwconncomp (BWComplement);
numPixels = cellfun (@numel CC.PixelIdxList);
[最大,idx] = max (numPixels);
BWComplement (CC.PixelIdxList {idx}) = 0;
图中,imshow (BWComplement)
%,因为文本布局没有典型的文档,你
%需要提供文本OCR roi。使用regionprops。
BW = imdilate (BWComplement strel (“磁盘”3));%长文本周围有点获得更大的投资回报。
CC = bwconncomp (BW);
%使用regionprops边界框的文本
s = regionprops (CC、的边界框(“大小));
投资回报率= vertcat (s (:) .BoundingBox);
% OCR应用
%的信件有点薄,帮助OCR处理块状信件
BW1 = imerode (BWComplement strel (“广场”1));
%设置文本布局以“词”,因为布局一点也不像一个文档。
%设置字符集A到Z,限制错误。
结果= ocr (BW1 roi,“TextLayout”,“词”,“CharacterSet”,“一个”:“Z”);
%去掉空格的结果
c =细胞(1,元素个数(结果));
i = 1:元素个数(结果)
c{我}= deblank(结果(我)。text);
结束
%识别文本插入图像
最后= insertObjectAnnotation (im2uint8 (BWOrig),“矩形”roi, c);
imshow(最终)
这个最终的图像
希望有所帮助,Birju

更多的答案(4)

图像分析
图像分析 2015年3月19日
首先,删除与区域大于斑点像素的数量在一封信中,200左右。看到我的图像分割教程学习如何做到这一点。 //www.tatmou.com/matlabcentral/fileexchange/?term=authorid%3A31862 这将消除电路,只留下信件。
然后计算机视觉的OCR系统工具箱。 //www.tatmou.com/help/vision/ref/ocr.html bt548t1-2_1
2的评论
图像分析
图像分析 2021年10月30日
@Jack史密斯 说,ocr()不工作是一个非常奇怪的事情说因为你接受的答案实际上使用ocr()函数。
如果你读了ocr()的文档,它表示字符必须至少20像素高。是你的,高或更高?
发表论文,你可以看到在分析电路图和工程图纸:

登录置评。



阿里saren
阿里saren 2019年1月9日
你好,
很多谢谢你神奇的代码。
有一个简单的方法来删除这些角色的选择吗?
我们有自己的立场,但我想让这些单词的图片替换为空格。
4评论
阿里saren
阿里saren 2019年1月9日
是的,我看过roi我有点困惑。但是现在跟你解释ir的晶莹剔透。
非常感谢你的时间

登录置评。


类别

找到更多的在图像处理和计算机视觉帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!