C# vscode OpenCvSharp surf 算法
直接上代码
public static Mat MatchPicBySurf(Mat imgSrc, Mat imgSub, double threshold = 400)
{
var outMat = new Mat();
Mat matSrc = imgSrc;
Mat matTo = imgSub;
Mat matSrcRet = new Mat();
Mat matToRet = new Mat();
KeyPoint[] keyPointsSrc, keyPointsTo;
using (var surf = OpenCvSharp.XFeatures2D.SURF.Create(threshold, 4, 3, true, true))
{
surf.DetectAndCompute(matSrc, null, out keyPointsSrc, matSrcRet);
surf.DetectAndCompute(matTo, null, out keyPointsTo, matToRet);
}
using (var flnMatcher = new OpenCvSharp.FlannBasedMatcher())
{
var matches = flnMatcher.Match(matSrcRet, matToRet);
//求最小最大距离
double minDistance = 1000;//反向逼近
double maxDistance = 0;
Parallel.For(0, matSrcRet.Rows, new ParallelOptions { MaxDegreeOfParall