圆月山庄资源网 Design By www.vgjia.com
一、环境配置
需要 pillow 和 pytesseract 这两个库,pip install 安装就好了。
install pillow -i http://pypi.douban.com/simple --trusted-host pypi.douban.com pip install pytesseract -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
安装好Tesseract-OCR.exe
pytesseract 库的配置:搜索找到pytesseract.py,打开该.py文件,找到 tesseract_cmd,改变它的值为刚才安装 tesseract.exe 的路径。
二、验证码识别
识别验证码,需要先对图像进行预处理,去除会影响识别准确度的线条或噪点,提高识别准确度。
实例1
import cv2 as cv import pytesseract from PIL import Image def recognize_text(image): # 边缘保留滤波 去噪 dst = cv.pyrMeanShiftFiltering(image, sp=10, sr=150) # 灰度图像 gray = cv.cvtColor(dst, cv.COLOR_BGR2GRAY) # 二值化 ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) # 形态学操作 腐蚀 膨胀 erode = cv.erode(binary, None, iterations=2) dilate = cv.dilate(erode, None, iterations=1) cv.imshow('dilate', dilate) # 逻辑运算 让背景为白色 字体为黑 便于识别 cv.bitwise_not(dilate, dilate) cv.imshow('binary-image', dilate) # 识别 test_message = Image.fromarray(dilate) text = pytesseract.image_to_string(test_message) print(f'识别结果:{text}') src = cv.imread(r'./test/044.png') cv.imshow('input image', src) recognize_text(src) cv.waitKey(0) cv.destroyAllWindows()
运行效果如下:
识别结果:3n3D
Process finished with exit code 0
实例2
import cv2 as cv import pytesseract from PIL import Image def recognize_text(image): # 边缘保留滤波 去噪 blur =cv.pyrMeanShiftFiltering(image, sp=8, sr=60) cv.imshow('dst', blur) # 灰度图像 gray = cv.cvtColor(blur, cv.COLOR_BGR2GRAY) # 二值化 ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) print(f'二值化自适应阈值:{ret}') cv.imshow('binary', binary) # 形态学操作 获取结构元素 开操作 kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 2)) bin1 = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel) cv.imshow('bin1', bin1) kernel = cv.getStructuringElement(cv.MORPH_OPEN, (2, 3)) bin2 = cv.morphologyEx(bin1, cv.MORPH_OPEN, kernel) cv.imshow('bin2', bin2) # 逻辑运算 让背景为白色 字体为黑 便于识别 cv.bitwise_not(bin2, bin2) cv.imshow('binary-image', bin2) # 识别 test_message = Image.fromarray(bin2) text = pytesseract.image_to_string(test_message) print(f'识别结果:{text}') src = cv.imread(r'./test/045.png') cv.imshow('input image', src) recognize_text(src) cv.waitKey(0) cv.destroyAllWindows()
运行效果如下:
二值化自适应阈值:181.0
识别结果:8A62N1Process finished with exit code 0
实例3
import cv2 as cv import pytesseract from PIL import Image def recognize_text(image): # 边缘保留滤波 去噪 blur = cv.pyrMeanShiftFiltering(image, sp=8, sr=60) cv.imshow('dst', blur) # 灰度图像 gray = cv.cvtColor(blur, cv.COLOR_BGR2GRAY) # 二值化 设置阈值 自适应阈值的话 黄色的4会提取不出来 ret, binary = cv.threshold(gray, 185, 255, cv.THRESH_BINARY_INV) print(f'二值化设置的阈值:{ret}') cv.imshow('binary', binary) # 逻辑运算 让背景为白色 字体为黑 便于识别 cv.bitwise_not(binary, binary) cv.imshow('bg_image', binary) # 识别 test_message = Image.fromarray(binary) text = pytesseract.image_to_string(test_message) print(f'识别结果:{text}') src = cv.imread(r'./test/045.jpg') cv.imshow('input image', src) recognize_text(src) cv.waitKey(0) cv.destroyAllWindows()
运行效果如下:
二值化设置的阈值:185.0
识别结果:7364Process finished with exit code 0
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月02日
2024年11月02日
- 《暗喻幻想》顺风耳作用介绍
- 崔健1985-梦中的倾诉[再版][WAV+CUE]
- 黄子馨《追星Xin的恋人们2》HQ头版限量编号[WAV+CUE]
- 孟庭苇《情人的眼泪》开盘母带[低速原抓WAV+CUE]
- 孙露《谁为我停留HQCD》[低速原抓WAV+CUE][1.1G]
- 孙悦《时光音乐会》纯银CD[低速原抓WAV+CUE][1.1G]
- 任然《渐晚》[FLAC/分轨][72.32MB]
- 英雄联盟新英雄安蓓萨上线了吗 新英雄安蓓萨技能介绍
- 魔兽世界奥杜尔竞速赛什么时候开启 奥杜尔竞速赛开启时间介绍
- 无畏契约CGRS准星代码多少 CGRS准星代码分享一览
- 张靓颖.2012-倾听【少城时代】【WAV+CUE】
- 游鸿明.1999-五月的雪【大宇国际】【WAV+CUE】
- 曹方.2005-遇见我【钛友文化】【WAV+CUE】
- Unity6引擎上线:稳定性提升、CPU性能最高提升4倍
- 人皇Sky今日举行婚礼!电竞传奇步入新篇章