cvGetSubRect 不放入框架



我是OpenCV人脸检测器的新手。人脸检测工作正常,但我正试图使用生成的矩形在人脸周围制作一个框架,并将其剪切以将人脸保存在新的档案中。我一直在使用getSubRect和"haarcascade_fronalface_default"返回的值(左、上、宽、高)。假设GetSubRect的参数是(image,(左、上、右、下),但它不起作用,因为生成的图像没有使人脸居中。我犯了什么错?

代码是下一个:

import sys
   import cv
   imcolor = cv.LoadImage('C:\Temp\camera_test2.jpg') # input image
   # loading the classifier
   haarFace = cv.Load('c:opencvdatahaarcascadeshaarcascade_frontalface_default.xml')
   # running the classifier
   storage = cv.CreateMemStorage()
   detectedFace = cv.HaarDetectObjects(imcolor, haarFace, storage, 1.1)
   if detectedFace:
     arg1 = detectedFace[0][0][0]
     arg2 = detectedFace[0][0][1]
     arg3 = detectedFace[0][0][2]
     arg4 = detectedFace[0][0][3]
     Izq = arg1 - arg3/10
     Sup = arg2 - arg4/6
     Der = arg1 + arg3 #+ (arg3/10)
     Inf = arg2 + arg4 +(arg4/6)
     print detectedFace
     print Izq
     print Sup
     print Der
     print Inf
   imcolor2 = cv.GetSubRect(imcolor,(Izq, Sup, Der, Inf))
   cv.SaveImage('C:\temp\test_1.JPG', imcolor2)
   cv.WaitKey()

cv.GetSubRect期望(x, y, width, height):

for face, neighbors in detectedFace:
    im_face = cv.GetSubRect(imcolor, face)

另请参阅文档和OpenCV Cookbook。

也就是说,为什么不使用cv2呢?

相关内容

  • 没有找到相关文章

最新更新