我一直在使用tesseract将文档转换为文本。文档的质量参差不齐,我正在寻找关于哪种图像处理可以改善结果的提示。我注意到,高度像素化的文本--例如传真机生成的文本--对于tesseract来说尤其难以处理--大概所有这些字符的锯齿状边缘都会让形状识别算法感到困惑。
什么样的图像处理技术可以提高精度?我一直使用高斯模糊来平滑像素化的图像,并看到了一些小的改进,但我希望有一个更具体的技术,可以产生更好的结果。比方说,一个调整为黑白图像的过滤器,它将平滑不规则的边缘,然后是一个过滤器,它将增加对比度,使字符更加清晰。
对于图像处理方面的新手,有什么一般的建议吗?
发布于 2012-04-06 02:46:38
<代码>G211
没有适用于所有情况的通用命令行(有时您需要模糊和锐化图像)。但是你可以尝试一下TEXTCLEANER from Fred's ImageMagick Scripts。
如果你不喜欢命令行,也许你可以尝试使用开源scantailor.sourceforge.net或商业bookrestorer。
发布于 2012-07-25 02:45:55
我绝对不是一个光学字符识别专家。但是这周我需要把文本转换成jpg格式。
我从一个彩色的RGB 445x747像素的jpg开始。我立即尝试了tesseract,程序几乎什么都没有转换。然后,我进入GIMP并执行以下操作。image>mode>grayscale image>scale image>1191x2000像素filters>enhance>unsharp掩码的值为半径= 6.8,数量= 2.69,阈值=0,然后我以100%的质量保存为新的jpg。
然后,Tesseract能够将所有文本提取到一个.txt文件中
基普是你的朋友。
发布于 2018-06-08 22:15:06
根据经验,我通常使用OpenCV库应用以下图像预处理技术:
img = cv2.resize(img,None,fx=1.2,fy=1.2,interpolation=cv2.INTER_CUBIC)
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
iterations=1)
cv2.threshold(cv2.GaussianBlur(img,(5,5),0),0,255,cv2.THRESH_BINARY +cv2.THRESH_OTSU)1cv2.Threshold(cv2.双边过滤器(img,5,75,75),0,255,cv2.THRESH_BINARY +cv2.THRESH_OTSU)1cv2.Threshold(cv2.medianBlur(img,3),0,255,cv2.THRESH_BINARY +cv2.THRESH_OTSU)1cv2.adaptiveThreshold(cv2.GaussianBlur(img,(5,5),0),255,cv2.adaptiveThreshold(cv2.bilateralFilter(img,,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,31,2) cv2.THRESH_BINARY 9,75,75),255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,31,2) cv2.adaptiveThreshold(cv2.medianBlur(img,3),255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,31,2)
我最近写了一个关于Tesseract的非常简单的指南,但它应该能让你写出你的第一个OCR脚本,并清除我在文档中遇到的一些障碍。
如果你想查看它们,这里我与你分享链接:
https://stackoverflow.com/questions/9480013
复制相似问题