写一个opencvsharp 模板匹配的实例
时间: 2023-09-12 22:10:29 浏览: 101
好的,以下是一个使用OpenCvSharp进行模板配的实例:
```csharp
using System;
using OpenCvSharp;
class Program
{
static void Main(string[] args)
{
// 读取原始图像和模板图像
Mat sourceImage = new Mat("source.jpg", ImreadModes.Color);
Mat templateImage = new Mat("template.jpg", ImreadModes.Color);
// 创建结果图像
Mat resultImage = new Mat();
sourceImage.CopyTo(resultImage);
// 进行模板匹配
Cv2.MatchTemplate(sourceImage, templateImage, resultImage, TemplateMatchModes.CCoeffNormed);
// 获取匹配结果
double minVal, maxVal;
OpenCvSharp.Point minLoc, maxLoc;
Cv2.MinMaxLoc(resultImage, out minVal, out maxVal, out minLoc, out maxLoc);
// 绘制匹配结果矩形框
Rect matchRect = new Rect(maxLoc.X, maxLoc.Y, templateImage.Width, templateImage.Height);
Cv2.Rectangle(sourceImage, matchRect, new Scalar(0, 0, 255), 2);
// 显示匹配结果
Cv2.ImShow("Source Image", sourceImage);
Cv2.WaitKey(0);
}
}
```
这个示例读取了一个名为`source.jpg`的原始图像和一个名为`template.jpg`的模板图像,然后使用`Cv2.MatchTemplate`函数进行模板匹配,使用`Cv2.MinMaxLoc`函数获取匹配结果,最后使用`Cv2.Rectangle`函数绘制匹配结果矩形框,并在原始图像上显示出来。
请注意,这个示例使用的是OpenCvSharp4,如果您使用的是OpenCvSharp2或OpenCvSharp3,请注意函数名称和参数的不同。
阅读全文