利用百度orc的图像识别

#!/usr/bin/env python
# encoding: utf-8
from mlab.releases import latest_release as matlab
import requests
import sys
import os
import base64
import json
import scipy.io as sio  
import codecs
import Image
import cv2
import matplotlib.image as mpimg # mpimg 用于读取图片
import numpy as np
import matplotlib.pyplot as plt 
import Image,ImageFont,ImageDraw

def img_to_word(length,path):

    #设置请求参数
    headers = {}
    headers['content-type'] = 'application/x-www-form-urlencoded'
    headers['apikey'] = '7e56242731ba069ed2f23fd310d2c191'
    payload = {}
    payload['fromdevice'] = "pc"
    payload['clientip'] = "10.10.10.0"
    payload['detecttype'] = "LocateRecognize"
    payload['languagetype'] = "CHN_ENG"
    payload['imagetype'] = "1"
    fobj = open(path+'/words.txt', 'w')  
    result = [[] for i in range(length)]
    position = [[] for j in range(length)]
    for i in range(0,length):
        picname=path+'/Original_Binary/Scatter P'+str(i+1)+'.jpg'
        img = cv2.imread(picname) # 读取和代码处于同一目录下的 lena.png
        f=open(picname,'rb') 
        payload['image'] = base64.b64encode(f.read())
        r=requests.post('http://apis.baidu.com/apistore/idlocr/ocr', data=payload, headers=headers)
        r_json = json.loads(r.text) 
        print r_json
        print 'number'+str(i)
        if r_json["errNum"] == "0":
            print 'ok'
            for line in r_json["retData"]:
                print line["word"]
                text=line["word"].replace(" ","")
                f = codecs.open(path+'/words.txt','r+','utf-8')
                f.read()
                f.write('\r\n'+text)
                f.close()
                result[i].append(text) 
                position[i].append(line["rect"]["left"])
                position[i].append(line["rect"]["top"])
                position[i].append(line["rect"]["width"])
                position[i].append(line["rect"]["height"])
                x1=int(line["rect"]["left"])
                y1=int(line["rect"]["top"])
                x2=x1+int(line["rect"]["width"])
                y2=y1+int(line["rect"]["height"])
                cv2.rectangle(img,(x1,y1),(x2,y2),(0,0,255),2)
                #cv2.putText(img,text, (x1,y1),font=font, 2.0, color=(0,0,255), thickness = 2)
            cv2.imwrite(path+"/Sign_Binary/Sign_Image"+str(i+1)+".jpg",img)
    dataNew1 = path+'/Text.mat'
    dataNew2 = path+'/Position.mat'
    sio.savemat(dataNew1, {'result':result})
    sio.savemat(dataNew2, {'position':position})
    print result
if __name__ == "__main__":
    #填入图片路径 注意该图片必须是彩色图片
    picpath=r'E:\test\2.JPG'
    matlab.path(matlab.path(),r'E:\LAB')
    n=int(matlab.LABtest(picpath))
    #得到该图片的上级路径,并转化成python的路径格式
    newpath=picpath.replace('\\','/')
    nnew=newpath[0:newpath.rindex('/')]
    img_to_word(n,nnew)

最近比较忙,暂时没有时间写详细的介绍,待续

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值