本文来源于LearnOpencv,详细原文请看:Turn your OpenCV Code into a Web API in under 10 minutes — Part 1
文章主要内容就是说在pythonanywhere上注册个账号,在上面创建一个application,写好程序,保存后就可以通过网页访问程序就可以了,实现webAPI的功能。还有点意思,这只是很简单的例子,熟悉以后可以自己想着做些东西,把自己的代码放到服务器上,随时调用,多好玩啊 !
废话不多说了,上正文:
(这是web2py的密码,不是pythonanywhere的,你也可以设置成一个)
import cv2
import numpy as np
import urllib2
import json
def image_dimensions():
hdr = {'User-agent':'Mozilla/5.0'}
req = urllib2.Request(request.vars.url,headers=hdr)
try:
con = urllib2.urlopen(req)
im_array = np.asarray(bytearray(con.read()),dtype=np.uint8)
im = cv2.imdecode(im_array,cv2.IMREAD_GRAYSCALE)
height,width = im.shape
return json.dumps({"wight_kuan": width,"height_gao":height})
except urllib2.HTTPError as e:
return e.fp.read()
#替换图片地址和你的服务器名字
curl -F url=http://example.com/image.jpg http://username.pythonanywhere.com/appname/default/image_dimensions
下面是一个例子(对于图片的网址有要求,像维基百科这类安全的网址应该是没有问题的):
或者打开浏览器,在网址一栏中粘贴下面的代码
http://yuzhesun.pythonanywhere.com/opencvtests/default/image_dimensions?url=http://upload.wikimedia.org/wikipedia/commons/4/4d/Ball_python_lucy.JPG
亲测可行~