OpenCV中的文本清理器,如ImageMagicK脚本

时间:2014-01-22 03:44:36

标签: android opencv ocr tesseract

在使用tesseract运行OCR之前,我尝试使图像中的文本更清晰,更清晰。在this link中,他们为ImageMagicK提供了一个很好的脚本。我想知道是否可以将此脚本和函数转换为OpenCV代码?例如,带有如下参数的脚本:

-g -e none -f 15 -o 20

从解释:

-g ...................... convert document to grayscale before enhancing
-e .... enhance ......... enhance image brightness before cleaning;
                       choices are: none, stretch or normalize; 
                       default=none
-f .... filtersize ...... size of filter used to clean background;
                       integer>0; default=15
-o .... offset .......... offset of filter in percent used to reduce noise;
                      integer>=0; default=5

如何在OpenCV代码中执行相同的操作?由于我是OpenCV的新手,我只知道如何转换为灰度。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您必须检查ImageMagick文档以找到所使用的确切算法,但这是一个粗略的猜测:

-g ...................... convert document to grayscale before enhancing

这可能会cv::cvtColor进行BGR2GRAY转换,甚至更好,使用cv::imread(filename,CV_LOAD_IMAGE_GRAYSCALE)

直接加载灰度图像
-e .... enhance ......... enhance image brightness before cleaning;
                       choices are: none, stretch or normalize; 
                       default=none

既然你选择了“无”,那就没什么了。否则,请使用cv::equalizeHisttutorial)。

-f .... filtersize ...... size of filter used to clean background;
                       integer>0; default=15
-o .... offset .......... offset of filter in percent used to reduce noise;
                      integer>=0; default=5

我对后两个参数的猜测是cv::adaptiveThreshold,其中-f与OpenCV中的blockSize参数相对应,-o与常量C相对应。您需要在ImageMagick文档中查看实际的自适应阈值方法(高斯或平均值)