C# 利用EMGU-CV检测倒立人脸

C# 利用EMGU-CV检测倒立人脸,c#,opencv,emgucv,C#,Opencv,Emgucv,我正在尝试使用EMGU CV在图像中进行面部检测。在某些情况下,人脸会在倒置的图像中被检测到。我只需要在人脸笔直时进行人脸检测 为了克服这个问题,我使用了两个额外的级联分类器 右眼和嘴 在得到眼睛和嘴巴的边界矩形后,我检查嘴巴矩形的中心Y坐标是否在眼睛矩形之上 var mouthRect= dparameters.hcMouthDetector.DetectMultiScale(image, 1.2, 2, Size.Empty, Size.Empty)[0]; var eyeRect =

我正在尝试使用EMGU CV在图像中进行面部检测。在某些情况下,人脸会在倒置的图像中被检测到。我只需要在人脸笔直时进行人脸检测

为了克服这个问题,我使用了两个额外的级联分类器 右眼

在得到眼睛和嘴巴的边界矩形后,我检查嘴巴矩形的中心Y坐标是否在眼睛矩形之上

 var mouthRect= dparameters.hcMouthDetector.DetectMultiScale(image, 1.2, 2, Size.Empty,  Size.Empty)[0];
 var eyeRect = dparameters.hcEyeDetector.DetectMultiScale(image, 1.2, 2, Size.Empty, Size.Empty)[0];
                               
     if (getcenter(mouthRect).Y > getcenter(eyeRect).Y)
      {
      target.RotateFlip(RotateFlipType.Rotate180FlipNone);                                  
      }
获取中心的方法

      private static System.Drawing.Point getcenter(Rectangle Rect)
       {
       return new System.Drawing.Point(Rect.Left + Rect.Width / 2,
       }
如果嘴巴矩形的Y坐标在眼睛矩形上方,我们有一个倒置的图像,所以我将其翻转180度


我面临的问题是,在某些图像中,即使图像没有颠倒,也会发生翻转。

你有足够的理由意识到这个问题的提出很糟糕。这是不可复制的。您的代码无效。这个问题可能是由您显示的代码之外的许多事情引起的(您的分类器工作正常吗?)@HansKilian分类器工作正常。