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