在10分钟内将您的OpenCV代码转换为Web API - 第1部分

本文来源于LearnOpencv,详细原文请看:Turn your OpenCV Code into a Web API in under 10 minutes — Part 1

文章主要内容就是说在pythonanywhere上注册个账号,在上面创建一个application,写好程序,保存后就可以通过网页访问程序就可以了,实现webAPI的功能。还有点意思,这只是很简单的例子,熟悉以后可以自己想着做些东西,把自己的代码放到服务器上,随时调用,多好玩啊 !

废话不多说了,上正文:

1.注册pythonanywhere账号,点击网址:

https://www.pythonanywhere.com/

在10分钟内将您的OpenCV代码转换为Web API - 第1部分_第1张图片

2.进入账号后点击web选项,然后点击Add a new web app

在10分钟内将您的OpenCV代码转换为Web API - 第1部分_第2张图片

3.选择web2py作为python 框架

在10分钟内将您的OpenCV代码转换为Web API - 第1部分_第3张图片

4.点击admin,设置密码,进入账户

(这是web2py的密码,不是pythonanywhere的,你也可以设置成一个)

在10分钟内将您的OpenCV代码转换为Web API - 第1部分_第4张图片

5.账户登录完毕,现在创建一个应用opencvtests

在10分钟内将您的OpenCV代码转换为Web API - 第1部分_第5张图片

6.如果一切正常,那么创建完成返回pythonanywhere界面,在Files下面,web2py下看到你创建的应用名

在10分钟内将您的OpenCV代码转换为Web API - 第1部分_第6张图片

7.按照目录进入default.py程序,添加测试代码,保存,确认没有错误

在10分钟内将您的OpenCV代码转换为Web API - 第1部分_第7张图片

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()

8.测试,打开cmd复制以下代码

#替换图片地址和你的服务器名字
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

在10分钟内将您的OpenCV代码转换为Web API - 第1部分_第8张图片

亲测可行~

你可能感兴趣的:(OpenCV,Python,opencv,WebAPI,pythonanywhere)