【OpenCVSharp】多目标模板匹配MatchTemplate

建立测试程序

通过NuGet工具为工程添加OpenCvSharp3-AnyCPU:

  • 工具–NuGet包管理器—管理解决方案的NuGet程序包
    在这里插入图片描述
测试程序

打开位于\bin\Debug\netcoreapp2.1和dill文件同目录下的lenna.jpg。

先添加引用:using OpenCvSharp;

  		static void Main(string[] args)
        {
   
            Mat src = new Mat("lenna.jpg", ImreadModes.Grayscale);//小写的scale,不然报错
            Mat dst = new Mat();
            Mat dst1 = new Mat();

            Cv2.Canny(src, dst, 50, 200);
            Cv2.Add(src, dst, dst1);
            using (new Window("src image", src))
            using (new Window("dst image", dst))
            using (new Window("dst1 image", dst1))
            {
   
                Cv2.WaitKey();
            }
        }

测试成功之后进行函数理解和面向搜索引擎的编程
关于OpenCv的模板匹配函数matchTemplate,这些地方都讲得都比较清楚,但我第一天看,还没没看到在C#上实现的,所以只能一步步写,函数定义,模仿,解决报错。
友情链接:

C#模板匹配代码
static void Main(string[] args)
        {
   
            //模板图片
            Mat temp = new Mat("temp.jpg",ImreadModes.AnyColor);
            //被匹配图
            Mat wafer = new Mat("wafer.jpg", ImreadModes.AnyColor);
            //匹配结果
            Mat result=new Mat();
            //模板匹配
            Cv2.MatchTemplate(wafer,temp,result,TemplateMatchModes.CCoeffNormed);//最好匹配为1,值越小匹配越差
            //数组位置下x,y
            Point minLoc =new Point(0,0);
            Point maxLoc = new Point(0, 0);
            Point matchLoc = new Point(0, 0);
            Cv2.MinMaxLoc(result, out minLoc, out maxLoc);
            matchLoc = maxLoc;
            Mat mask = wafer.Clone();
            //画框显示
            Cv2.Rectangle(mask, matchLoc, new Point(matchLoc.X + temp.Cols, matchLoc.Y + temp.Rows),Scalar.Green, 2);
                
            //新建窗体显示图片
            using (new Window("temp image", temp))
            using (new Window("wafer image", wafer
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值