.NetCore——OpenCvSharp识别Aruco图
一、开始
在之前一章中在C#中引用了OpenCvSharp生成Aruco图(.NetCore——OpenCvSharp创建Aruco图),那么这次就来看看OpenCvSharp识别Aruco图。
直接看代码。
具体的解释看代码注释
//读取图片
Mat image = Cv2.ImRead(@"D:\办公\JWT_CoreApi\Aruco\两图左右.jpg");
//Create标记检测参数
DetectorParameters parameters = DetectorParameters.Create();
//定义标记类字典
/*
此处定义的标记类字典要与生成Aruco图时定义的字典相同
*/
Dictionary dictionary = CvAruco.GetPredefinedDictionary(PredefinedDictionaryName.Dict4X4_1000);
/*
corners:检测到的标记角向量
points:包含那些内部代码没有正确编码的方块的imgpoint。有用用于调试目的。
*/
Point2f[][] corners, points;
//检测到的标记的标识符向量
int[] ids;
/*
进行图片检测
*/
CvAruco.DetectMarkers(image, dictionary, out corners, out ids, parameters, out points);
执行代码后查看 变量 ids 就是识别出来的标识码。
一张图中有多个Aruco码进行识别的时候,我试出了最多有三张图片的时候识别规律。
看看我的测试图:
这样就可以用C#实现识别Aruco图了。
环境:
vs2019,
.netcore3.1