如何在wamp服务器上运行python脚本

时间:2017-01-22 12:10:53

标签: php python apache python-2.7 wampserver

我正在尝试在wamp服务器上运行python脚本。我已经通过在 Apache> https.conf 文件中进行更改来配置Apache Web服务器以运行Python CGI。 虽然我能够运行包含print语句的简单python脚本,但不能运行以下代码片段:

realcode.py

    from __future__ import division
    from collections import Counter

    #!/Python27/python
    print "Content-type: text/html"
    print
    print "<html><head>"
    print ""
    print "</head><body>"
    print "hello from real code"

    import PIL
    from PIL import Image
    import matplotlib.pyplot as plt
    import numpy as np
    import sys, numpy
    import logging
    import cv2
    import os

    def drawMatches(img1, kp1, img2, kp2, matches):
        rows1 = img1.shape[0]
        cols1 = img1.shape[1]
        rows2 = img2.shape[0]
        cols2 = img2.shape[1]

        count=0
        arr_of_val_y=[]
        arr_of_val_x=[]
        q=0
        q1=0

        out = np.zeros((max([rows1,rows2]),cols1+cols2,3), dtype='uint8')
        out[:rows1,:cols1] = np.dstack([img1, img1, img1])
        out[:rows2,cols1:] = np.dstack([img2, img2, img2])

        for mat in matches:
            img1_idx = mat.queryIdx
            img2_idx = mat.trainIdx

            (x1,y1) = kp1[img1_idx].pt
            (x2,y2) = kp2[img2_idx].pt

            q=x2-x1
            q1=y2-y1

            arr_of_val_x.append(int(round(q)))
            arr_of_val_y.append(int(round(q1/10)*10))

            cv2.circle(out, (int(x1),int(y1)), 4, (255, 0, 0), 1)   
            cv2.circle(out, (int(x2)+cols1,int(y2)), 4, (255, 0, 0), 1)

            cv2.line(out, (int(x1),int(y1)), (int(x2)+cols1,int(y2)), (255, 0, 0), 1)

            count=count+1

        print "ARRAY IS"

        c=Counter(arr_of_val_y)

        m_percent=(max(c.values())/20)*100
        um_percent=100-m_percent

        slices=[m_percent,um_percent]
        acts=['MATCHED %d %%' % m_percent,'REM %d %%' % um_percent]
        cols=['r','k']
        explode=(0.05,0)
        plt.pie(slices,explode=explode,labels=acts,colors=cols,shadow=True,startangle=90)

        plt.title("RESULTS")
        plt.show()
        cv2.imshow('Matched Features', out)
        cv2.waitKey(0)
        cv2.destroyWindow('Matched Features')

        return out

    basewidth = 300
    img = Image.open('C:\\wamp\\bin\\apache\\apache2.4.9\\cgi-bin\\tiger.jpg')
    wpercent = (basewidth/float(img.size[0]))
    hsize = int((float(img.size[1])*float(wpercent)))
    img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS)
    img.save('resized_file_1.jpg')

    basewidth = 300
    img = Image.open('C:\\wamp\\bin\\apache\\apache2.4.9\\cgi-bin\\tiger1.jpg')
    wpercent = (basewidth/float(img.size[0]))
    hsize = int((float(img.size[1])*float(wpercent)))
    img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS)
    img.save('resized_file_2.jpg')

    img1 = cv2.imread('resized_file_1.jpg', 0) # Original image - ensure grayscale
    img2 = cv2.imread('resized_file_2.jpg', 0) # Rotated image - ensure grayscale

    orb = cv2.ORB(1000, 1.2)
    (kp1,des1) = orb.detectAndCompute(img1, None)
    (kp2,des2) = orb.detectAndCompute(img2, None)
    bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
    matches = bf.match(des1,des2)
    matches = sorted(matches, key=lambda val: val.distance)
    out = drawMatches(img1, kp1, img2, kp2, matches[:20])

    print "</body></html>"

0 个答案:

没有答案