在使用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的新手,我只知道如何转换为灰度。任何帮助将不胜感激。
答案 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::equalizeHist
(tutorial)。
-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文档中查看实际的自适应阈值方法(高斯或平均值)