C++ Tesseract ORC无法读取图像中的明文剪切

C++ Tesseract ORC无法读取图像中的明文剪切,c++,opencv,ocr,tesseract,C++,Opencv,Ocr,Tesseract,我在使用Tesseract OCR从文档中读取数字时遇到问题 我已从文件中删去了文字。并使用Tesseract OCR进行读取。但是命令行中没有打印任何内容 我用简单的文档白底黑号测试了它。它工作得很好 这是我检测数字的代码: orc->SetImage(source.data, source.size().width, source.size().height, source.channels(), source.step1()); QString outText = QString:

我在使用Tesseract OCR从文档中读取数字时遇到问题

我已从文件中删去了文字。并使用Tesseract OCR进行读取。但是命令行中没有打印任何内容

我用简单的文档白底黑号测试了它。它工作得很好

这是我检测数字的代码:

orc->SetImage(source.data, source.size().width, source.size().height, source.channels(), 
source.step1());
QString outText = QString::fromUtf8(orc->GetUTF8Text());
if (outText != "")
    qDebug() << outText;
orc->SetImage(source.data,source.size().width,source.size().height,source.channels(),
source.step1());
QString outText=QString::fromUtf8(orc->GetUTF8Text());
如果(输出文本!=“”)

qdGug())p>我不知道如何在C++中完成。但是我可以用python中的代码获得数字。我认为关键是在hsv颜色模式下处理

导入cv2
将numpy作为np导入
导入pytesseract
img=cv2.imread(“djwtV.png”,cv2.imread\u COLOR)
img=cv2。调整大小(img,无,fx=3,fy=3)
hsv=cv2.CVT颜色(img,cv2.COLOR\U BGR2HSV)
上限=np.数组([255,255,150])
lower=np.array([0,0,0])
遮罩=cv2.inRange(hsv,下部,上部)
掩码=cv2。按位\u非(掩码)
自定义配置=r'-l eng--oem 3--psm 6-c tessedit_char_whitelist=“0123456789,”
text=pytesseract.image\u to\u字符串(掩码,配置=custom\u配置)
打印(“检测到:”,文本)
cv2.imshow(“img”,img)
cv2.imshow(“面具”,面具)
cv2.等待键(0)
cv2.destroyAllWindows()
结果

Detected:  4,691,613
如果你把代码改成这个

upper = np.array([255, 255, 125])

custom_config = r'-l jpn --oem 3 --psm 6 '
你会得到这个

Detected:  | 預り金 計①(a+b+c) |  4.691.613

我不知道如何用C++来做。但是我可以用python中的代码获得数字。我认为关键是在hsv颜色模式下处理

导入cv2
将numpy作为np导入
导入pytesseract
img=cv2.imread(“djwtV.png”,cv2.imread\u COLOR)
img=cv2。调整大小(img,无,fx=3,fy=3)
hsv=cv2.CVT颜色(img,cv2.COLOR\U BGR2HSV)
上限=np.数组([255,255,150])
lower=np.array([0,0,0])
遮罩=cv2.inRange(hsv,下部,上部)
掩码=cv2。按位\u非(掩码)
自定义配置=r'-l eng--oem 3--psm 6-c tessedit_char_whitelist=“0123456789,”
text=pytesseract.image\u to\u字符串(掩码,配置=custom\u配置)
打印(“检测到:”,文本)
cv2.imshow(“img”,img)
cv2.imshow(“面具”,面具)
cv2.等待键(0)
cv2.destroyAllWindows()
结果

Detected:  4,691,613
如果你把代码改成这个

upper = np.array([255, 255, 125])

custom_config = r'-l jpn --oem 3 --psm 6 '
你会得到这个

Detected:  | 預り金 計①(a+b+c) |  4.691.613

尝试使用OpenCV中的各种阈值选项来对图像进行二进制化,包括OTSU、自适应阈值等。尝试使用OpenCV中的各种阈值选项来对图像进行二进制化,包括OTSU、自适应阈值等。我已经将其转换为C++代码,并且它工作得非常完美。谢谢斯已经把它转换成C++代码,而且工作得很好。谢谢