Python识别12306图片验证码物品的实现示例

  


  

  

Python 3安装:pip3安装枕头

  

<强> 1.1图像模块
  

  

图像模块是在Python公益诉讼图像处理中常见的模块,主要是用于对这个图像的基本处理,它配合开放、保存、转换、显示…等功能使用。

        从公益诉讼导入图像   #打开文件代表打开pycharm中的文件   我=Image.open (“1. jpg”)   #展示图片   im.show ()   之前      

1、作物类

  

拷贝这个图像。如果用户想粘贴一些数据到这张图,可以使用这个方法,但是原始图像不会受到影响。

  

<代码> im.crop(箱)& # 8658;图片

  

从当前的图像中返回一个矩形区域的拷贝。变量箱是一个四元组,定义了左,上,右和下的像素坐标。用来表示在原始图像中截取的位置坐标,如箱(100100200200)就表示在原始图像中以左上角为坐标原点,截取一个100 * 100(像素为单位)的图像。

        从公益诉讼导入图像   我=Image.open (“pic1.jpg”)   # #确定拷贝区域大小   盒=(5、41、72、108)   # #将im表示的图片对象拷贝到区域中,大小为盒子   地区=im.crop(盒)   region.show ()      之前      

<强>  Python识别12306图片验证码物品的实现示例

  

<>强实战一:12306年图像分割并保存

        从公益诉讼导入图像   #切割图像,由于下载的图片都是有固定的位置,所以直接控制像素进行切割就行了   def cut_img (im, x, y):   断言0 & lt;=x & lt;=3   断言0 & lt;=y & lt;=2   左=5 + (67 + 5)* x   最高=41 + (67 + 5)* y   右=左+ 67   底=+ 67   我返回。作物((左,上,右,下)      if __name__==癬_main__”:   我=Image.open (“。/pic1.jpg”)   #控制y轴   y的范围(2):   #控制x轴   x的范围(4):   im2=cut_img (im, x, y)   im2.save(’。/图片/% s_ % s.png ' % (y, x))   之前      

 Python识别12306图片验证码物品的实现示例

  

  

2.1。平台接入:

  

1。打开https://ai.baidu.com/进入控制台,选择文字识别服务。

  

 Python识别12306图片验证码物品的实现示例

  

2。创建应用,如图示:

  

 Python识别12306图片验证码物品的实现示例

  

3。输入应用名称,描述,并选择应用类型,之后点击“立即创建“按钮。

  

 Python识别12306图片验证码物品的实现示例

  

, 4。创建完毕,点击“返回应用列表”。

  

 Python识别12306图片验证码物品的实现示例

  

5。此处显示AK, SK,后面程序中会用到

  

 Python识别12306图片验证码物品的实现示例

  

  

1。打开https://ai.baidu.com/docs/OCR-API/高级文档说明

  

 Python识别12306图片验证码物品的实现示例

  

 Python识别12306图片验证码物品的实现示例

  

需要用到的信息有:

  

(1)图像识别URL: https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general

,   

(2)头格式:内容类型:应用程序/x-www-form-urlencoded

  

(3)请求参数:图像和multi_detect两个参数,图片为图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4 m。

  

(4)返回参数:车牌颜色颜色,车牌号码数量等。

        # !/usr/bin/python   # - * -编码:utf - 8 - *   进口base64   进口的要求   进口操作系统   导入的时间   # todo:获取百度权限验证码access_token   def get_token ():   get_token_url=" https://aip.baidubce.com/oauth/2.0/token "   params={   :“grant_type client_credentials”,   :“client_id 7 ax98quwu5l2ztbaokzvkgxe”,   :“client_secret INugQTM2DAfNFgfxtvgR7eF8AHPFGP5t”,   }   res=请求。get (get_token_url params) . json ()   返回res (“access_token”)   # todo:通过权限验证码和图片进行识别物品   def get_result (access_token、图片):   url=" https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general "   #打开文件并进行编码   张开(图片,rb) f:   形象=base64.b64encode (f.read ())   #图像=#头部信息   头={   “内容类型”:“应用程序/x-www-form-urlencoded”   }   #发送数据   data=https://www.yisu.com/zixun/{“access_token”: access_token,   “图像”:形象   }   #发送请求,并返回识别数据   res=请求。帖子(url,头=头,data=https://www.yisu.com/zixun/data) . json ()   如果res:   结果=res(“结果”)   返回结果   # todo:获取图片关键物品   def get_keywords(结果):   #按照最大匹配率进行排序,并获取左最后一个   max_score=排序(因此,关键=λx: x[“分数”])[1]   #打印(max_score['关键字'])   关键词=max_score(“关键字”)   返回关键字      if __name__==癬_main__”:   access_token=get_token ()   get_result (access_token pic1.jpg)   数据=[]   在os.walk dir,根文件(图片):   文件的文件:   形象=os.path.join(根、文件)   结果=get_result (access_token、图片)   关键词=get_keywords(结果)   打印(关键字)   time . sleep (1)   datas.append(关键字)   打印(数据)

Python识别12306图片验证码物品的实现示例