C#调用OpenCvSharp实现图像的角点检测

角点检测用于获取图像特征,以支撑运动检测、目标识别、图像匹配等方面的应用。常用的角点检测算法包括Kitchen-Rosenfeld算法、Harris算法、KLT算法、SUSAN算法等,本文学习并测试Harris角点检测算法。
  关于Harris算法的数学原理请见参考文献1的第18、19课,其总共花50分钟左右讲解算法数学原理。OpenCvSharp中Harris算法的函数原型如下:

csharp 复制代码
public static void CornerHarris(InputArray src, OutputArray dst, int blockSize, int ksize, double k, BorderTypes borderType = BorderTypes.Reflect101)

其中:
    -src,源图像,带检测角点的图像,一般为灰度图,Mat类型;
    -dst,保存角点检测几个,其类型和尺寸与src相同;
    -blockSize,邻域大小,详见参考文献3-4;
    -ksize,Sobel算子的孔径大小,只能取1、3、5、7(参考文献3);
    -k,权重系数,一般取0.04~0.06(参考文献1)。
  实际测试过程中,将角点检测结果归一化处理,然后检测超过指定阈值的位置,并在原图中标识,主要代码及程序运行效果如下所示:

csharp 复制代码
using Mat imgSrc = Cv2.ImRead(lblMsg.Text);
using Mat imgGray = new Mat();
Cv2.CvtColor(imgSrc, imgGray, ColorConversionCodes.BGR2GRAY);

using Mat imgDest = new Mat(imgGray.Size(), MatType.CV_32FC1);

Cv2.CornerHarris(imgGray, imgDest, blockSize, ksize, k);

using Mat imgNorm =new Mat();
Cv2.Normalize(imgDest, imgNorm, 0, 255, NormTypes.MinMax);

for (int i = 0; i < imgNorm.Rows; i++)
{
    for (int j = 0; j < imgNorm.Cols; j++)
    {
        if (imgNorm.At<float>(i, j) > thrould)
        {
            Cv2.Circle(imgSrc, j, i, 5, color);
        }
    }
}

Cv2.ImShow("角点检测", imgSrc);



参考文献:

1\]花12800买来的【OpenCV全套】教程,花费156个小时整理的OpenCV计算机视觉基础版全套视频教程,涵盖核心知识点,全程干货,无废话 \[2\]OpenCV3编程指南 \[3\]https://blog.csdn.net/holybin/article/details/40984955 \[4\]https://www.cnblogs.com/kbqLibrary/p/12482664.html

相关推荐
何以解忧唯有撸码14 天前
c#实现包裹扣面单的几种方式
ocr·opencvsharp·扣面单
s090713622 天前
FPGA加速:Harris角点检测全解析
图像处理·算法·fpga开发·角点检测
水龙吟啸22 天前
SFM逆向扫描工程:重建3D物体
点云·特征匹配·最小二乘法·深度相机·角点检测·3d重建·icp算法
LeonDL1683 个月前
【通用视觉框架】基于C#+Winform+OpencvSharp开发的视觉框架软件,全套源码,开箱即用
人工智能·c#·winform·opencvsharp·机器视觉软件框架·通用视觉框架·机器视觉框架
R-G-B6 个月前
【01】OpenCV C#——C#开发环境OpenCvSharp 环境配置 工程搭建 及代码测试
opencv·c#·opencvsharp·opencvsharp环境搭建·opencvsharp开发环境·opencv c#·opencvsharp代码测试
小乖兽技术8 个月前
WinForms 应用中集成 OpenCvSharp 实现基础图像处理
图像处理·opencv·c#·opencvsharp
weixin_468466851 年前
C++、C#、python调用OpenCV进行图像处理耗时对比
c++·图像处理·python·opencv·c#·机器视觉·opencvsharp
pchmi1 年前
C# OpenCV机器视觉:模仿Halcon各向异性扩散滤波
人工智能·opencv·计算机视觉·c#·机器视觉·opencvsharp
pchmi1 年前
C# OpenCV机器视觉:对位贴合
人工智能·opencv·c#·机器视觉·opencvsharp
pchmi1 年前
C# OpenCV机器视觉:SoftNMS非极大值抑制
人工智能·opencv·c#·机器视觉·opencvsharp