Beispiel #1
0
    def _detectSkin(self, bgrimg):
        hsvimg = im.bgr2hsv(bgrimg)
        h, s, v = im.split3(bgrimg)
        skin_mask = cv.CreateImage(im.size(hsvimg), cv.IPL_DEPTH_8U, 1)
        h_mask = cv.CreateImage(im.size(hsvimg), cv.IPL_DEPTH_8U, 1)
        v_mask = cv.CreateImage(im.size(hsvimg), cv.IPL_DEPTH_8U, 1)

        v_mask = self.checkRange(v, self.v_low, self.v_high)
        h_mask = self.checkRange(h, self.h_low, self.h_high)
        cv.And(h_mask, v_mask, skin_mask)

        return skin_mask
Beispiel #2
0
  def _detectSkin(self, bgrimg):
    hsvimg = im.bgr2hsv(bgrimg)
    h,s,v = im.split3(bgrimg)
    skin_mask = cv.CreateImage(im.size(hsvimg), cv.IPL_DEPTH_8U, 1)
    h_mask = cv.CreateImage(im.size(hsvimg), cv.IPL_DEPTH_8U, 1)
    v_mask = cv.CreateImage(im.size(hsvimg), cv.IPL_DEPTH_8U, 1)

    v_mask = self.checkRange(v, self.v_low, self.v_high)
    h_mask = self.checkRange(h, self.h_low, self.h_high)    
    cv.And(h_mask, v_mask, skin_mask)

    return skin_mask
Beispiel #3
0
 def checkRange(self, src, lowBound, highBound):
   size = im.size(src)
   mask = cv.CreateImage(size, cv.IPL_DEPTH_8U, 1)
   gt_low = cv.CreateImage(size, cv.IPL_DEPTH_8U, 1)
   cv.CmpS(src, lowBound, gt_low, cv.CV_CMP_GT)
   lt_high = cv.CreateImage(size, cv.IPL_DEPTH_8U, 1)
   cv.CmpS(src, highBound, lt_high, cv.CV_CMP_LT)
   cv.And(gt_low, lt_high, mask)
   return mask
Beispiel #4
0
    def detectSkin(self, bgrimg):
        img_temp = cv.CreateImage(im.size(bgrimg), 8, 3)
        cv.Smooth(bgrimg, img_temp, cv.CV_GAUSSIAN, 5, 5)
        for i in range(3):
            cv.Smooth(img_temp, img_temp, cv.CV_GAUSSIAN, 5, 5)
        #cv.ShowImage("Capture from camera", img_temp)

        skin = self._detectSkin(img_temp)
        return skin
Beispiel #5
0
 def checkRange(self, src, lowBound, highBound):
     size = im.size(src)
     mask = cv.CreateImage(size, cv.IPL_DEPTH_8U, 1)
     gt_low = cv.CreateImage(size, cv.IPL_DEPTH_8U, 1)
     cv.CmpS(src, lowBound, gt_low, cv.CV_CMP_GT)
     lt_high = cv.CreateImage(size, cv.IPL_DEPTH_8U, 1)
     cv.CmpS(src, highBound, lt_high, cv.CV_CMP_LT)
     cv.And(gt_low, lt_high, mask)
     return mask
Beispiel #6
0
  def detectSkin(self, bgrimg):
    img_temp = cv.CreateImage(im.size(bgrimg), bgrimg.depth, bgrimg.nChannels)
    #cv.SaveImage("original.png", bgrimg)
    cv.Smooth(bgrimg, img_temp, cv.CV_MEDIAN, 15)#, 0, 20, 20)
    #cv.SaveImage("smooth.png", img_temp)
    cv.ShowImage("Capture from camera", img_temp)

    #skin_o = self._detectSkin(bgrimg)
    #cv.SaveImage("skin_o.png", skin_o)
    skin = self._detectSkin(img_temp)
    #cv.SaveImage("skin_s.png", skin)
    return skin
Beispiel #7
0
    def detectSkin(self, bgrimg):
        img_temp = cv.CreateImage(im.size(bgrimg), bgrimg.depth,
                                  bgrimg.nChannels)
        #cv.SaveImage("original.png", bgrimg)
        cv.Smooth(bgrimg, img_temp, cv.CV_MEDIAN, 15)  #, 0, 20, 20)
        #cv.SaveImage("smooth.png", img_temp)
        cv.ShowImage("Capture from camera", img_temp)

        #skin_o = self._detectSkin(bgrimg)
        #cv.SaveImage("skin_o.png", skin_o)
        skin = self._detectSkin(img_temp)
        #cv.SaveImage("skin_s.png", skin)
        return skin
Beispiel #8
0
 def segment(self, bgrimg):
   segmented = cv.CreateImage(im.size(bgrimg), bgrimg.depth, bgrimg.nChannels)
   cv.PyrSegmentation(bgrimg, segmented, self.storage, 3, 188, 60)
   return segmented
Beispiel #9
0
 def segment(self, bgrimg):
     segmented = cv.CreateImage(im.size(bgrimg), bgrimg.depth,
                                bgrimg.nChannels)
     cv.PyrSegmentation(bgrimg, segmented, self.storage, 3, 188, 60)
     return segmented