#!/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)
最近比较忙,暂时没有时间写详细的介绍,待续