Stu*_*PhD 0 matlab plot image-processing image-segmentation
我一直在阅读Matlab中的自动文本行识别,尽管有很多高级方法可以做到这一点,但每篇论文都提到检测文本行的最简单方法是通过水平投影.所以我决定为自己尝试这种方法.
我对此非常陌生并撞到了一堵砖墙,我达到了一个我不知道该怎么办的水平.这是我迄今取得的成就:
我正在尝试一个与语言无关且只对文本行感兴趣的系统,所以我选择了阿拉伯语文本:

我使用该函数radon来获得投影.
img = rgb2gray(imread('arabic.jpg'));
[R, xp] = radon(bw_closed, [0 90]);
figure; plot(xp,R(:,2)); title('at angle 90');
Run Code Online (Sandbox Code Playgroud)
这是情节(投影)

很明显,5个峰值代表检测到的5行,但我如何从这里开始分割原始文档?
除此之外,有人可以帮助我吗?我读过的所有论文都没有提到如何从这一步骤开始,他们只是说从投影中我们得到了检测到的线条.
我要问的是,从情节数据中我可以告诉matlab文本行是什么以及行之间的误差是什么?
r = R(:,2);
r=r(92:391); % your image region
blank = r < 3; % region without text
[labeled, n] = bwlabel(blank);
C = regionprops(labeled, 'Centroid'); % find the centers of blank regions
for i=1:length(C)-1
subplot(length(C)-1,1,i)
imshow(img(C(i).Centroid(2):C(i+1).Centroid(2),:));
end
Run Code Online (Sandbox Code Playgroud)
结果:
