Я работаю над проектом распознавания рук. На данный момент я могу обнаружить руку, и я нашел контур руки и выпуклых точек корпуса, используя следующий код:Самые дальние точки в выпуклой оболочке
Contour<Point> contours = imageThreshold.FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE,
Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_LIST, storage);
Contour<Point> largestcontour = contours;
while (contours != null)
{
if(largestcontour.Area < contours.Area)
{
largestcontour = contours;
}
contours = contours.HNext;
}
if (largestcontour != null)
{
Seq<Point> convexHull = largestcontour.GetConvexHull(Emgu.CV.CvEnum.ORIENTATION.CV_CLOCKWISE);
foreach (var hullPoint in convexHull)
{
CvInvoke.cvCircle(ColorFrame, hullPoint, 3, new MCvScalar(255), 2, Emgu.CV.CvEnum.LINE_TYPE.EIGHT_CONNECTED, 0);
}
CvInvoke.cvDrawContours(ColorFrame, convexHull, new MCvScalar(255),
new MCvScalar(128), 1, 1, Emgu.CV.CvEnum.LINE_TYPE.EIGHT_CONNECTED, new Point(0, 0));
}
В выходе есть более чем одна точка на кончике каждого пальца. Я хочу, чтобы на каждом кончике пальца набиралась одна точка.
После того, как я сделал несколько исследований, я понял, что для получения одной точки на каждом кончике пальца мне нужно найти самую дальнюю точку из каждой вершины в выпуклой оболочке.
Как получить самые дальние точки в выпуклом корпусе?
Если у вас есть ответ, который вы хотели бы добавить к этой ссылке, используйте раздел ответа. Чтобы только предоставлять ссылки, используйте раздел комментариев. Вы можете получить отрицательный результат для этого !!!! –