python和接码平台对接_python验证码识别接口及识别思路代码
import os
import pytesseract
from PIL import Image
from collections import defaultdict#tesseract.exe所在的文件路径
pytesseract.pytesseract.tesseract_cmd = 'D:/Tesseract-OCR/tesseract.exe'#获取图片中像素点数量最多的像素
def get_threshold(image):
pixel_dict=defaultdict(int)#像素及该像素出现次数的字典
rows, cols =image.sizefor i inrange(rows):for j inrange(cols):
pixel=image.getpixel((i, j))
pixel_dict[pixel]+= 1count_max= max(pixel_dict.values()) #获取像素出现出多的次数
pixel_dict_reverse = {v: k for k, v inpixel_dict.items()}
threshold= pixel_dict_reverse[count_max] #获取出现次数最多的像素点
returnthreshold#按照阈值进行二值化处理#threshold: 像素阈值
def get_bin_table(threshold):#获取灰度转二值的映射table
table =[]for i in range(256):
rate= 0.1 #在threshold的适当范围内进行处理
if threshold * (1 - rate) <= i <= threshold * (1 +rate):
table.append(1)else:
table.append(0)returntable#去掉二值化处理后的图片中的噪声点
def cut_noise(image):
rows, cols= image.size #图片的宽度和高度
change_pos = [] #记录噪声点位置
#遍历图片中的每个点,除掉边缘
for i in range(1, rows - 1):for j in range(1, cols - 1):#pixel_set用来记录该店附近的黑色像素的数量
pixel_set =[]#取该点的邻域为以该点为中心的九宫格
for m in range(i - 1, i + 2):for n in range(j - 1, j + 2):if image.getpixel((m, n)) != 1: #1为白色,0位黑色
pixel_set.append(image.getpixel((m, n)))#如果该位置的九宫内的黑色数量小于等于4,则判断为噪声
if len(pixel_set) <= 4:
change_pos.append((i, j))#对相应位置进行像素修改,将噪声处的像素置为1(白色)
for pos inchange_pos:
image.putpixel(pos,1)return image #返回修改后的图片
#识别图片中的数字加字母#传入参数为图片路径,返回结果为:识别结果
def OCR_lmj(img_path):
image= Image.open(img_path) #打开图片文件
imgry = image.convert('L') #转化为灰度图
#获取图片中的出现次数最多的像素,即为该图片的背景
max_pixel =get_threshold(imgry)#将图片进行二值化处理
table = get_bin_table(threshold=max_pixel)
out= imgry.point(table, '1')#去掉图片中的噪声(孤立点)
out =cut_noise(out)#保存图片
#out.save('E://figures/img_gray.jpg')
#仅识别图片中的数字
#text = pytesseract.image_to_string(out, config='digits')
#识别图片中的数字和字母
text =pytesseract.image_to_string(out)#去掉识别结果中的特殊字符
exclude_char_list = ' .:\\|\'\"?![],()~@#$%^&*_+-={};<>/¥—'
text = ''.join([x for x in text if x not in exclude_char_list])
return text
if __name__=='__main__':
a = OCR_lmj('D:\\jd\\img\\2.jpg')
print(a)
python和接码平台对接_python验证码识别接口及识别思路代码相关推荐
- python和接码平台对接_python写接码api
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- python和接码平台对接_GitHub - zhupite233/yima: 易码平台API的Python接口
易码API - Python接口 1. 简介: 本python包旨在为易码api提供一个python封装包,使调用变得更简单. 2. 使用方法: 2.1 安装 pip install yima 2.2 ...
- python爬虫源码附注解_Python爬虫遇到验证码的几种处理方式,文章末尾有源码
最近事情其实挺多了,打了一下蓝桥杯的比赛, 还在准备着一些证书的考试, 关于爬虫之类的博客都搁着了一段时间了, 关于我自己确实有点退步了, 实属不该, 其实我自己也是在想, 大三了,到底我是要去考研, ...
- 易语言注册机接码平台对接
易语言注册机接码平台对接 这应该是大家不管看视频教程,还是自己刚开学写第一个遇到的功能吧.今天我就把这个东西给大家好好的分析下: 所用到的技术:Api接口对接,易语言中的(网页_访问_对象,json ...
- Scrapy搜狗微信:使用cookies登录并使用打码平台自动输入验证码
Scrapy搜狗微信:使用cookies登录并使用打码平台自动输入验证码 爬虫思路 知识点 前期准备 正文 爬虫思路 通过搜狗微信的搜索功能实现输入关键字搜索并实现自动化翻页爬取100页搜索内容(搜狗 ...
- python调用(百度云、腾讯云)API接口表格识别并保存为excel
Python表格识别 图像识别具有较高的商业价值,本节主要通过python调用(百度云.腾讯云)API接口表格识别并保存为excel分析表格识别的能力: 提示:需分别申请密钥,在相应位置添加自己密钥即 ...
- Python自动打码,DdddOcr通用验证码自动识别库
在Python爬虫中,或者使用POST提交的过程中,往往需要提交验证码来验证,除了人工打码,付费的api接口(打码接口),深度学习识别验证码,当然还有适合新人使用的OCR验证码识别库,简单的验证码是可 ...
- 更正:解决报告无法下载的问题-跟国家虚拟仿真实验平台对接上传附件接口遇到的问题
开发原由: 跟国家虚拟仿真实验平台对接,需要上传报告至国家平台,虽然国家平台提供了接口详情,但在对接的过程中还是遇到了许多问题,因此记录下来. 国家虚拟仿真实验平台 更正: 上传代码做了修改.解决从国 ...
- python语言特点依赖平台吗_python语言的特点
Python既支持面向过程编程,也支持面向对象编程.在"面向过程"的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的.在"面向对象"的语言中,程序是由数据 ...
最新文章
- OBYC PRY PRV
- 破云里步重华为什么说自己姓薛_都说虎毒不食子,但猫咪为什么会吃掉自己的孩子呢...
- 淘淘商城项目分析报告
- 服务器禁止修改目录,目录服务器限制 (Sun Java System Directory Server Enterprise Edition 6.2 发行说明)...
- iOS 处理键盘遮挡TextField、TextView问题
- [Tyvj1114 搭建双塔]
- 初探奥尔良(Orleans)
- logisim优先编码器怎么用_变频电机为什么要用编码器?又该如何选型?
- JMF调用摄像头粉屏的问题(win10 64位系统)
- 学习 trajectory.txt
- 软件测试电商web项目如何描述,测试web项目实战
- C++ 逆向笔记12 call和堆栈平衡
- linux soruce 命令,Linux source命令是干啥的?
- matlab学习五,二元函数绘图方法
- _nullterminated
- Java 练习题 Fibonacci数列
- PVE7.2-3直通独显 nvidia 1080ti
- 设计师:室内设计师的简介、工作内容、工作要求、设计常识(硬装/软装/榻榻米/马卡龙/地台/公共空间/玄关/闭水实验、家具知识(欧式雕花家具-欧式雕花家具)、室内设计常用尺寸之详细攻略
- Numpy下arr[2],arr[2,:],arr[2:,:]的区别
- C语言整数转字符串-递归算法