emguCv를 사용하여 이미지의 구석을 감지하려고합니다. 이를 위해 emguCv에서 Harris Corner 탐지 방법을 사용했습니다. 출력 결과가 흐릿 해지고 그 방법을 사용하면 이미지의 모서리 수를 얻을 수 없습니다. 내가 검색 할 때 OpenCvSharp에서 코드를 발견하여 모서리를 탐지하면 결과물을 내 소망으로 줄 것입니다. OpenCvSharp 코드를 EmguCv로 변환하려고 시도했는데 여기에 갇혀 있습니다. EmvCv로 'Cv.GoodFeaturesToTrack()'메소드를 변환 할 때. 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);
}
}