import sys
import cv
def detect_face(image):
image_size = cv.GetSize(image)
# # create grayscale version
grayscale = cv.CreateImage(image_size, 8, 1)
cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)
# # equalize histogram
cv.EqualizeHist( grayscale,grayscale )
#parameters to the detection function
cascade = cv.Load('haarcascade_frontalface_alt.xml')
haar_scale = 1.1
min_neighbors = 3
haar_flags = cv.CV_HAAR_DO_CANNY_PRUNING
min_size = (30,30)
faces = cv.HaarDetectObjects(grayscale, cascade, cv.CreateMemStorage(0),
haar_scale, min_neighbors, haar_flags, min_size)
print faces
if len(faces) > 0:
print '=> ' + str(len(faces)) + ' face detected!'
for ((x,y,width,height), n) in faces:
pt1 = (x,y)
pt2 = (x + width, y + height)
cv.Rectangle(image, pt1, pt2, cv.RGB(255, 0, 0), 3, 8, 0)
if __name__ == '__main__':
filename = sys.argv[1]
image = cv.LoadImage(filename,cv.CV_LOAD_IMAGE_COLOR);
detect_face(image)
cv.ShowImage("cam", image)
cv.WaitKey(0)
空数组返回。
答案 0 :(得分:0)
就像Barmar在评论中指出的那样:“你的命令应该包含在引号中......”exec命令的第一个参数应该是一个字符串。所以你的代码应该读过这样的东西:
cfg.GameSendConnection.sendall((action + "\n").encode("utf-8"))