Вычислить евклидово расстояние от точек формы dlib в C #? - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть пример кода (WebcamFacePose), который взят из здесь . Теперь я хочу выяснить евклидово расстояние для правого и левого глаза. Я использовал метод ниже, чтобы найти расстояние между 2 точками.

double A = Math.Sqrt((Math.Pow(Math.Abs(lines[37].Point1.X - lines[41].Point1.X), 2) + Math.Pow(Math.Abs(lines[37].Point1.Y - lines[41].Point1.Y), 2)));

Но окончательное значение EAR неверно.

и я использую код C # для получения точек фигур,

using (var cimg = Dlib.LoadImageData<RgbPixel>(array, (uint)temp.Height, (uint)temp.Width, (uint)(temp.Width * temp.ElemSize())))
                            {
                                // Detect faces 
                                var faces = detector.Operator(cimg);
                                // Find the pose of each face.
                                var shapes = new List<FullObjectDetection>();
                                for (var i = 0; i < faces.Length; ++i)
                                {
                                    var det = poseModel.Detect(cimg, faces[i]);
                                    shapes.Add(det);
                                }

                                // Display it all on the screen
                                win.ClearOverlay();
                                win.SetImage(cimg);
                                var lines = Dlib.RenderFaceDetections(shapes);
                                win.AddOverlay(lines);

                                foreach (var line in lines)
                                    line.Dispose();
                            }
                  }

У меня также есть рабочий код C ++ для этого,

double compute_EAR(std::vector<cv::Point> vec)
{
    double a = cv::norm(cv::Mat(vec[1]), cv::Mat(vec[5]));
    double b = cv::norm(cv::Mat(vec[2]), cv::Mat(vec[4]));
    double c = cv::norm(cv::Mat(vec[0]), cv::Mat(vec[3]));
    //compute EAR
    double ear = (a + b) / (2.0 * c);
    return ear;
}

Но я не знаю, как преобразовать это в C #, чтобы получить значение EAR.

Так что любой может помочь мне найти значения EAR для обоих глаз в C #?

Заранее спасибо.

...