c# OpenCvSharp 目标检测五个步骤(又学会了)(七)

这篇具有很好参考价值的文章主要介绍了c# OpenCvSharp 目标检测五个步骤(又学会了)(七)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目标检测通过下面5个步骤得出结果

  1. 读取图像 Cv2.ImRead();
  2. 使用模板匹配函数 cv2.matchTemplate();
  3. 获取匹配结果的最大值和最小值的位置 Cv2.MinMaxLoc();
  4. 绘制矩形框标记匹配结果
  5. 显示匹配结果

图例(上个扑克牌玩一下)

opencvsharp 图像定位,c#opencv,图像处理,人工智能,计算机视觉

// 1、读取图像
Mat image = Cv2.ImRead("01.jpg", ImreadModes.Color);
Mat template = Cv2.ImRead("0102.jpg", ImreadModes.Color);

// 2、 使用cv2.matchTemplate()函数进行模板匹配
Mat resultImage = new Mat();
Cv2.MatchTemplate(image, template, resultImage, TemplateMatchModes.CCoeffNormed);
//3、 获取匹配结果的最大值和最小值的位置
double minVal, maxVal;
Point minLoc, maxLoc;
Cv2.MinMaxLoc(resultImage, out minVal, out maxVal, out minLoc, out maxLoc);
//4、绘制矩形框标记匹配结果
Rect rect = new Rect(maxLoc.X, maxLoc.Y, template.Width, template.Height);
Cv2.Rectangle(image, rect, Scalar.Red, 2);
//5、显示匹配结果
Cv2.ImShow("Result", image);
Cv2.WaitKey(0);

 看结果

opencvsharp 图像定位,c#opencv,图像处理,人工智能,计算机视觉

opencvsharp 图像定位,c#opencv,图像处理,人工智能,计算机视觉

确实匹配到一个爱心,那么爱心只能一个,不甘心再来;

 // 1、读取图像
 Mat image = Cv2.ImRead("01.jpg", ImreadModes.Color);
 Mat template = Cv2.ImRead("0103.jpg", ImreadModes.Color);
 // 2、 使用cv2.matchTemplate()函数进行模板匹配
 Mat resultImage = new Mat();
 Cv2.MatchTemplate(image, template, resultImage, TemplateMatchModes.CCoeffNormed);
 //3、 获取匹配结果的最大值和最小值的位置

 // 设置匹配阈值
 double threshold = 0.81;

 // 获取匹配结果的最小值和最大值的位置
 while (true)
 {
     double minVal, maxVal;
     Point minLoc, maxLoc;
     Cv2.MinMaxLoc(resultImage, out minVal, out maxVal, out minLoc, out maxLoc);

     // 如果最大值小于阈值,则退出循环
     if (maxVal < threshold)
         break;

     // 在源图像上绘制矩形框
     //4、绘制矩形框标记匹配结果
     Rect rect = new Rect(maxLoc.X, maxLoc.Y, template.Width, template.Height);
     Cv2.Rectangle(image, rect, Scalar.Green, 1);

     // 将匹配结果置为0,以便找到下一个最大值
     Cv2.FloodFill(resultImage, maxLoc, Scalar.Black);
 }

 //5、显示匹配结果
 Cv2.ImShow("Result", image);
 Cv2.WaitKey(0);

结果出来了

opencvsharp 图像定位,c#opencv,图像处理,人工智能,计算机视觉

一、读取图像

  • 加载目标图像;
  • 匹配的特征图像。

imread()读取图像

c# OpenCvSharp读取、显示和写入图像(二)-CSDN博客

二、使用cv2.matchTemplate()函数进行模板匹配

cv2.matchTemplate(image,template,result,method,mask)

matchTemplate()函数在图像处理中常用于目标检测、模板匹配等应用场景.

参数 解释
image 输入图像,可以是任意尺寸和通道数的图像。
template 模板图像,必须与输入图像具有相同的通道数。
result  输出图像,用于存储匹配结果。
method 匹配方法,指定如何计算输入图像和模板图像之间的匹配程度。(方法如下表)
mask

可选参数,指定一个掩码图像,在匹配过程中只考虑掩码区域。

 method方法

三、获取匹配结果的最大值和最小值的位置

Cv2.MinMaxLoc(src, out minVal, out maxVal, out minLoc, out maxLoc);

Cv2.MinMaxLoc()是一个用于查找数组(或图像)中最小值、最大值及其位置的函数。它通常用于查找数组的范围或在图像上定位最亮和最暗的点。

参数 解释
src 输入图像(单通道,灰度图像)
minVal 图像中的最小值
maxVal 图像中的最大值
minLoc 最小值的位置(x,y)坐标
maxLoc

最大值的位置(x,y)坐标

mask

可选参数,指定一个掩码图像,在匹配过程中只考虑掩码区域。

四、绘制矩形框标记匹配结果

Cv2.Rectangle()绘制矩形

c# OpenCvSharp基本绘画(直线、椭圆、矩形、圆、多边形、文本)(四)-CSDN博客

五、显示匹配结果

Cv2.ImShow()窗口中显示图像

c# OpenCvSharp读取、显示和写入图像(二)-CSDN博客

通过掌握这五个步骤,你可以在C#中使用OpenCvSharp实现目标检测。祝你成功!

  c# OpenCV相关文章目录

 c# OpenCvSharp安装(一)
c# OpenCvSharp读取、显示和写入图像(二)
c# OpenCvSharp图像裁剪、调整大小、旋转、透视(三)
c# OpenCvSharp基本绘画(直线、椭圆、矩形、圆、多边形、文本)(四)
c# OpenCvSharp 检测(斑点检测、边缘检测、轮廓检测)(五)
c# OpenCvSharp 轮廓绘制六步骤你学会了吗(六)
c# OpenCvSharp 目标检测五个步骤(又学会了)(七)
c# OpenCvSharp透视矫正六步实现透视矫正(八)
c# OpenCvSharp Cv2.Threshold()和Cv2.AdaptiveThreshold参数说明
c# OpenCvSharp透视矫正参数调整器文章来源地址https://www.toymoban.com/news/detail-829373.html

到了这里,关于c# OpenCvSharp 目标检测五个步骤(又学会了)(七)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# OpenCvSharp DNN FreeYOLO 人脸检测&人脸图像质量评估

    目录 效果 模型信息 yolo_free_huge_widerface_192x320.onnx face-quality-assessment.onnx 项目 代码 frmMain.cs FreeYoloFace FaceQualityAssessment.cs 下载 C# OpenCvSharp DNN FreeYOLO 人脸检测人脸图像质量评估 Inputs ------------------------- name:input tensor:Float[1, 3, 192, 320] ------------------------------------------------------

    2024年01月22日
    浏览(46)
  • C# OpenCvSharp Yolov8 Face Landmarks 人脸特征检测

    目录 介绍 效果 模型信息 项目 代码 下载 github地址:https://github.com/derronqi/yolov8-face yolov8 face detection with landmark Model Properties ------------------------- description:Ultralytics YOLOv8-lite-t-pose model trained on widerface.yaml author:Ultralytics kpt_shape:[5, 3] task:pose license:AGPL-3.0 https://ultralytics.com

    2024年02月06日
    浏览(44)
  • C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀

    使用OpenCV可以对彩色原始图像进行基本的处理,涉及到5个常用的处理: 灰度化 模糊处理 Canny边缘检测 膨胀 腐蚀 本例中我们采用数字图像处理中经常用到的一副标准图像 lena.png 作为测试图像,如下图所示: 具体资源下载地址为:lena图像下载地址 首先我们新建一个基于C# .

    2024年04月22日
    浏览(54)
  • C#图像处理-OpenCVSharp教程:OpenCVSharp与EmguCV的比较与介绍

    C#图像处理-OpenCVSharp教程:OpenCVSharp与EmguCV的比较与介绍 图像处理在计算机视觉和计算机图形学等领域发挥着至关重要的作用。本教程将介绍在C#中使用OpenCVSharp和EmguCV这两个流行的图像处理库,它们提供了丰富的功能和强大的性能。 一、OpenCVSharp介绍与特点 OpenCVSharp是OpenCV的

    2024年02月21日
    浏览(40)
  • c# OpenCvSharp安装(一)

    一  通过NuGet 安装四个拓展包 OpenCvSharp4、OpenCvSharp4.Extensions、OpenCvSharp4.runtime.win、OpenCvSharp4.WpfExtensions C#使用OpenCV的一些代码 需要加头文件 using OpenCvSharp;   //为了使用opencv using Point = OpenCvSharp.Point;   //为了确定我们使用的point是opencv的而不是draw的    c# OpenCV相关文章目录

    2024年04月16日
    浏览(32)
  • C# OpenCvSharp 图像校正

    目录 效果 代码 下载 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Extensions; namespace OpenCvSharp_图像校正 {     public partial class Form1 : Form     {         pu

    2024年02月15日
    浏览(39)
  • C# OpenCvSharp 通道分离

    目录 效果 项目 代码 下载  using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Extensions; namespace OpenCvSharp_通道分离 {     public partial class Form1 : Form     {    

    2024年02月09日
    浏览(51)
  • C# OpenCvSharp 图片批量改名

    目录 效果 项目 代码 下载 C# OpenCvSharp 图片批量改名 using NLog; using OpenCvSharp; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows.Forms; namespace OpenCvSharp_Demo {     public partial class Form1 : Form     {         public Form1()         {             InitializeCo

    2024年03月12日
    浏览(43)
  • C# OpenCvSharp 玉米粒计数

    目录 效果 项目 代码 下载 玉米粒计数 主要处理步骤 1、二值化操作 2、腐蚀 3、距离变换 4、形态学处理 5、找到种子的轮廓区域         OpenCV中,函数distanceTransform()用于计算图像中每一个非零点像素与其最近的零点像素之间的距离,         输出的是保存每一个非零

    2024年02月04日
    浏览(51)
  • C# OpenCvSharp 读取rtsp流

    目录 效果 项目 代码 下载  using OpenCvSharp; using OpenCvSharp.Extensions; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace OpenCvSharp_读取rtsp流

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包