0
我想使用emguCv檢測圖像的角點。爲此,我在emguCv中使用了Harris Corner檢測方法。但是輸出結果是模糊的,並且使用該方法我無法獲取圖像中角點的數量。當我搜索時,我在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);
}
}