没有合适的资源?快使用搜索试试~ 我知道了~
C# vscode OpenCvSharp surf 算法
需积分: 50 22 下载量 84 浏览量
2020-09-16
15:36:33
上传
评论 3
收藏 5KB TXT 举报
温馨提示
试读
4页
C# vscode OpenCvSharp surf 算法, C++ 照搬 过来 可以识别画出检测框, 不明白可以Q我
资源推荐
资源详情
资源评论
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 { MaxDegreeOfParallelism = 1 }, (i, state) =>
{
double distance = matches[i].Distance;
if (distance > maxDistance)
{
maxDistance = distance;
}
if (distance < minDistance)
{
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 { MaxDegreeOfParallelism = 1 }, (i, state) =>
{
double distance = matches[i].Distance;
if (distance > maxDistance)
{
maxDistance = distance;
}
if (distance < minDistance)
资源评论
a254921185
- 粉丝: 7
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功