Обнаружение углов с помощью EmguCv

Я пытаюсь определить углы изображения с помощью emguCv. Для этого я использовал метод обнаружения Harris Corner в emguCv. но результат вывода размыт, и с помощью этого метода я не могу получить количество углов в изображении. Когда я искал, я нашел код в OpenCvSharp для обнаружения углов, и он выдаст результат по моему желанию. Я попытался преобразовать этот код OpenCvSharp в EmguCv и застрял здесь. При преобразовании метода Cv.GoodFeaturesToTrack() в EmguCv. В структуре EmguCv требуется 11 параметров, а для последних 4 параметров что я должен передать? Кто-нибудь может мне помочь?

Код OpencvSharp выглядит следующим образом:

IplImage src;
IplImage gray;
IplImage eigImg;

        public void Grascale()
        {
            gray = Cv.CreateImage(src.Size, BitDepth.U8, 1);
            Cv.CvtColor(src, gray, ColorConversion.RgbToGray);
            Cv.SaveImage("grayimg.jpg", src);
        }

        public void DetectCorners()
        {
            Grascale();
            int cornerCount = 15000000;


            using (src)
            using (gray)
            using (IplImage eigImg = new IplImage(gray.GetSize(), BitDepth.F32, 1))
            using (IplImage tempImg = new IplImage(gray.GetSize(), BitDepth.F32, 1))

            {
                CvPoint2D32f[] corners;
                Cv.GoodFeaturesToTrack(gray, eigImg, tempImg, out corners, ref cornerCount, 0.1, 15);
                Cv.FindCornerSubPix(gray, corners, cornerCount, new CvSize(3, 3), new CvSize(-1, -1), new CvTermCriteria(20, 0.03));

                for (int i = 0; i < cornerCount; i++)
                    Cv.Circle(src, corners[i], 3, new CvColor(0, 0, 255), 2);

                Cv.SaveImage("result_img.jpg", src);

            }
        }

person RuwanH    schedule 09.06.2016    source источник


Ответы (1)


вам лучше использовать метод findcountours. Затем примените приблизительноPolyDP, чтобы вы могли получить «углы» (в зависимости от формы), а затем CornersSubPix, чтобы еще больше приблизить результаты, и примените несколько логических циклов для группировки похожих сегментов.

person Pablo Gonzalez    schedule 07.03.2017