在光学字符识别(OCR)中,我面临着在嘈杂/复杂的背景图像上分割字符的问题。我尝试了在这里附加的3个(我认为)最简单的图像。另外,由于图像几乎是低对比度的,因此我尝试了对比度增强(直方图均衡化)。但是,分割的字符仍然质量较差:连接的字符,未填充的区域,并且由于固定的阈值而无法用于其他图像。
Scalar m = mean(src);
for ( y = 0; y < src.rows; y++ )
{
for ( x = 0; x < src.cols; x ++ )
{
if ( filtered_image.at<uchar>(y,x) > 160 )
{
filtered_image.at<uchar>(y, x) = (uchar) m(0);
}
}
}
GaussianBlur(filtered_image, filtered_image, Size(5, 5), 1, 1, 4);
imshow("filtered", filtered_image);
HardThresholding(filtered_image, filtered_image, 70);
imshow("threshold", filtered_image);
如果有人可以提出一些想法,那真的很棒。
最佳答案
您可以尝试使用MSER(最大稳定的末端区域)进行斑点检测。 VLFeat开源库包括MSER的实现。
有整个scientific competition专门用于文本分割。事实证明,许多方法都将MSER用作其处理流程的一部分。
关于opencv - 复杂背景的段特征,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31570617/