ocr - python识别验证码
伊谢尔伦
伊谢尔伦 2017-04-17 17:53:00
[Python讨论组]

我只能做成这样:

用pytesseract来提取,还是不够准确。有谁知道怎样去掉那些黑点吗?

去掉黑点已解决。
但为什么这时用image_to_string函数会报错的?平时都没错

Traceback (most recent call last):
  File "test1.py", line 10, in <module>
    text = pytesseract.image_to_string(Image.open('temp2.jpg'))
  File "/usr/local/lib/python3.5/site-packages/pytesseract/pytesseract.py", line 163, in image_to_string
    errors = get_errors(error_string)
  File "/usr/local/lib/python3.5/site-packages/pytesseract/pytesseract.py", line 111, in get_errors
    error_lines = tuple(line for line in lines if line.find('Error') >= 0)
  File "/usr/local/lib/python3.5/site-packages/pytesseract/pytesseract.py", line 111, in <genexpr>
    error_lines = tuple(line for line in lines if line.find('Error') >= 0)
TypeError: a bytes-like object is required, not 'str'
from PIL import Image,ImageEnhance,ImageFilter
import pytesseract

im = Image.open("temp.jpg")
im = im.filter(ImageFilter.MedianFilter())
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
im.save('temp2.jpg')
text = pytesseract.image_to_string(Image.open('temp2.jpg'))
print(text)
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
天蓬老师

第二张图要去掉黑点,就是一个二值化降噪的过程。可以用PIL(Python Image Library)试试

代码:

from PIL import Image,ImageEnhance,ImageFilter

im = Image.open("1.jpeg")
im = im.filter(ImageFilter.MedianFilter())
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
im.show()

效果:

处理前

处理后

迷茫

http://www.jianshu.com/p/9f74...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号