2
我想获得的图像的连接组件,然后为每个连接component.This运行ocr
是我的代码 -连接的部件OCR(图像处理)
clc
image=imread('im.png');
image=imcomplement(image);
[imx imy]=size(image);
n1=zeros(imx,imy);
symb=zeros(imx,imy);
lin=zeros(imx,imy);
L = bwlabel(image,8) ;%Calculating connected components
mx=max(max(L));
for i=1:mx
[r,c] = find(L==i);
n1=zeros(imx,imy);
rc = [r c];
[sx sy]=size(rc);
for j=1:sx
x1=rc(j,1);
y1=rc(j,2);
n1(x1,y1)=1;
end
figure,imshow(n1);title('components');
r = ocr(n1,'TextLayout','Word')
n=strtrim(r.Text);
end
这是我的输入图像 -
其中一个连接部件,我得到的是这个 -
我得到这个,当我在显示去年第四组件line.But在下一行我没有得到这个组件的ocr任何结果。所以我的问题是为什么我没有得到这个组件ocr
,而所有其他组件在ocr
给一些结果。
如果代替im.png
我在代码的第一行使用这个组件作为输入 - 我为此得到一个ocr。为什么发生这种情况?
编辑 - 如果我使用这个组件作为输入,我得到了ocr。
当我使用二进制图像(对应于你的“Component”图像)时,我需要对'ocr'进行一个细微的形态学操作来实际检测某些东西(字母I)。否则我什么都没得到。你是说在你的情况下,它确实发现了一封没有任何操纵的信件? –
我已经编辑了我的问题。实际上,我使用外部软件从组件图像中删除了白色边框,然后使用它。然后'ocr'检测到这个“|” – Noober
OCR:光学字符识别。除非你正在检测的是字符(例如“H”,“L”,“|”,...),否则它对你无用。 –