server.py
from pysimplesoap.server import SoapDispatcher, SOAPHandler from BaseHTTPServer import HTTPServer import base64 import cv2 from frvehiclelpr import * import sys import json lpr = 0 def analyseImg(data, fileFormat): s = base64.b64decode(data) fileName = "test1." + fileFormat fileName = str(fileName) f = open(fileName, 'wb') f.write(s) f.flush() f.close() res = lpr.recognizeFile(fileName) res['platenum'] = res['platenum'].decode('gb2312') #print res['platenum'] jstr = json.dumps(res) bstr = base64.b64encode(jstr) return bstr if __name__ == '__main__': lpr = FrVehicleLpr() res = lpr.init() if not res: print "init lpr failed !" sys.exit(0) dispatcher = SoapDispatcher( 'my_dispatcher', location = "http://localhost:8008/", action = 'http://localhost:8008/', namespace = "http://example.com/sample.wsdl", prefix="ns0", trace = True, ns = True) dispatcher.register_function('AnalyseImg', analyseImg, returns={'analyseResult': str}, args={'data': str, 'fileFormat': str}) print "Starting server..." httpd = HTTPServer(("", 8008), SOAPHandler) httpd.dispatcher = dispatcher httpd.serve_forever()
from pysimplesoap.client import SoapClient,SoapFault import base64 import json class FrClient(object): def __init__(self): self.client = 0 def init(self, add = 0): if add == 0: self.client = SoapClient(wsdl="http://localhost:8008") else: self.client = SoapClient(wsdl=add) def analyseImg(self, srcName, formatName = 0): f = open(srcName, 'rb') s = f.read() d = base64.b64encode(s) f.close() if formatName == 0: formatName = srcName[len(srcName)-3:] response = self.client.AnalyseImg(data = d,fileFormat = formatName) dres = response['analyseResult'] jres = base64.b64decode(dres) res = json.loads(jres) return res if __name__ == '__main__': pass