我需要检测文档上的文本块并返回它们的边界框,我听说我应该侵蚀图像,这将"涂抹"文本在一起并形成blobs,然后我可以使用blob检测来找到文本的位置。目前,我已经对图像进行了二值化,上面有一些文字。
我一直在使用这段代码来腐蚀,它稍微合并了文本。但是我怎样才能使它更严重呢?这些参数让我有点困惑,如果有人能解释我如何使侵蚀更严重,那将是伟大的!
erode(quad, quad, Mat(), cv::Point(-1, -1), 2, 1, 1);
谢谢。
尝试使用更大的结构元素:
int element_size=10;
Mat element = getStructuringElement( cv::MORPH_ELLIPSE,Size( 2*element_size + 1, 2*element_size+1 ),Point( element_size, element_size ) );
cv::erode(quad,quad,element);
我也认为这个链接对你的任务很有用:
http://docs.opencv.org/trunk/modules/objdetect/doc/erfilter.html