利用百度orc的图像识别

来源:互联网 发布:sql server查看主键 编辑:程序博客网 时间:2024/06/05 17:58
#!/usr/bin/env python# encoding: utf-8from mlab.releases import latest_release as matlabimport requestsimport sysimport osimport base64import jsonimport scipy.io as sio  import codecsimport Imageimport cv2import matplotlib.image as mpimg # mpimg 用于读取图片import numpy as npimport matplotlib.pyplot as plt import Image,ImageFont,ImageDrawdef 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 resultif __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 0
原创粉丝点击