我正在研究Matlab中古代卡纳达语的光学字符识别。在测试图像(文档)中,我需要预处理图像,分割字符,提取特征并将这些特征向量传递给神经网络以进行识别。但我在分割方面遇到了问题,我尝试使用此代码,但它对大多数图像都不起作用。
clear all;
close all;
I = imread('sample.png');
BW = im2bw(I, 0.9);
BW = ~BW;
count=1;
stats = regionprops(BW);
for index=1:length(stats)
if stats(index).Area > 200 && stats(index).BoundingBox(3)*stats(index).BoundingBox(4) < 30000
x = ceil(stats(index).BoundingBox(1))
y= ceil(stats(index).BoundingBox(2))
widthX = floor(stats(index).BoundingBox(3)-1)
widthY = floor(stats(index).BoundingBox(4)-1)
subimage(index) = {BW(y:y+widthY,x:x+widthX,:)};
name=strcat(int2str(count),'.png');
img = imcomplement(subimage{index});
img = imresize(img,[32 32]);
imwrite(img,name);
count=count+1;
end
end
字符随机分段,我希望第一个字符首先被分段'1.png',第二个字符被分割为第二个字符('2.png') 建议一些好的算法或算法的源代码进行分割。
您可以在此处找到示例图片
<https://drive.google.com/file/d/0B-gBHe6NsjQIM3BLYnJxMjZONm8/edit?usp=sharing>
<https://drive.google.com/file/d/0B-gBHe6NsjQIUnF1RFVubXZvQjQ/edit?usp=sharing>
<https://drive.google.com/file/d/0B-gBHe6NsjQIWUZqX1NIaUhCYUk/edit?usp=sharing>
<https://drive.google.com/file/d/0B-gBHe6NsjQIeEFpbDZQcWRFN0E/edit?usp=sharing>
提前致谢。