Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从这张图像中删除随机生成的线和点?[使用Tesseract的预光学字符识别]_C#_Opencv_Tesseract - Fatal编程技术网

C# 如何从这张图像中删除随机生成的线和点?[使用Tesseract的预光学字符识别]

C# 如何从这张图像中删除随机生成的线和点?[使用Tesseract的预光学字符识别],c#,opencv,tesseract,C#,Opencv,Tesseract,我试图用C#上的Tesseract通过OCR来解决CAPTCHA。我用Selenium抓取了验证码,并应用了一些效果来清理图像,结果是图像不够干净,无法正确阅读 我在这里问是否有人可以帮我写一个OpenCV代码,可以删除线和点,因为它们有不同的宽度。谢谢 图片: OpenCv更改后的图像: 不管怎么说,要再改进一点吗?Tesseract还不认识它。我不知道如何在C#中实现它,但在python中,这段代码是有效的 import cv2 import numpy as np import pytes

我试图用C#上的Tesseract通过OCR来解决CAPTCHA。我用Selenium抓取了验证码,并应用了一些效果来清理图像,结果是图像不够干净,无法正确阅读

我在这里问是否有人可以帮我写一个OpenCV代码,可以删除线和点,因为它们有不同的宽度。谢谢

图片:

OpenCv更改后的图像:


不管怎么说,要再改进一点吗?Tesseract还不认识它。

我不知道如何在C#中实现它,但在python中,这段代码是有效的

import cv2
import numpy as np
import pytesseract

img = cv2.imread("Md5XC6G.png", cv2.IMREAD_GRAYSCALE)
cv2.imshow("original", img)

img = cv2.bitwise_not(img)

kernel = np.ones((14, 14), np.uint8)
close = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
newkernel = np.ones((5, 5), np.uint8)
inv = cv2.erode(close, newkernel, iterations=1)

inv = cv2.bitwise_not(inv)

cv2.imshow("inverted", inv)
cv2.imwrite("inverted.jpg", inv)

custom_config = r'-l eng --oem 3 --psm 7 -c tessedit_char_whitelist="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"'
text = pytesseract.image_to_string(inv, config=custom_config)
print("Detected captcha is:", text)

cv2.waitKey(0)
cv2.destroyAllWindows()
运行时的结果

Detected captcha is: wjr4s2

你是个怪兽,我会试着翻译它,我会让你知道的。大家好@us2018,代码有时会使用一些CAPTCHA,但对于一些字母之间有行的代码,无法提取文本。有什么办法可以改进一下吗?这里你有另一个图片可以尝试:非常感谢!
Detected captcha is: wjr4s2