不能识别字母标签使用ocr图像()函数。
27日视图(30天)
显示旧的评论
接受的答案
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
这将消除电路,只留下信件。