32-SIFI特征点提取(EmguCV学习)

使用EMGU.CV对图像进行SIFT和SURF特征提取 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Drawing; using Emgu.CV; using Emgu.CV.Features2D; using Emg 阅读详情

文章目录

Record

1、特征点检测与匹配常用的算法:FAST(FastFeatureDetector)、STAR(StarFeatureDetector)、SIFT、SURF、ORB、MSER、GFTT(GoodFeaturesToTrackDetector)、HARRIS、Dense、SimpleBlob等;
2、在EmguCV中,SIFT与SURF位于命名空间Emgu.CV.XFeatures2D下;
3、SIFT—尺度不变特征变换检测算法,SIFT特征对旋转,尺度缩放,亮度变化等保持不变性,是非常稳定的局部特征,应用广泛;
4、SIFT原理:设置尺度空间滤波器,关键点定位,为关键点指定方向参数(保持旋转不变性),
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、SIFT算法接口:

在这里插入图片描述
MKeyPoint结构是用于表示特征点:
在这里插入图片描述
DrawKeyPoints()函数用于绘制所有关键点:
在这里插入图片描述

Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.Util;
using Emgu.CV.Structure;
using Emgu.CV.XFeatures2D;
using System.Drawing;
using Emgu.CV.Features2D;
using Emgu.CV.Util;

namespace siftDetect
{
    class Program
    {
        static void Main(string[] args)
        {
            Mat src1 = CvInvoke.Imread("01.jpg");
            //Mat src1 = CvInvoke.Imread("00.jpg");

            SIFT sift = new SIFT(1000,3,0.04,10,1.6);
            MKeyPoint[] mKeyPoints = sift.Detect(src1);

            

            Mat sift_feature = new Mat();
            VectorOfKeyPoint vkPoints = new VectorOfKeyPoint(mKeyPoints);
            Features2DToolbox.DrawKeypoints(src1, vkPoints, sift_feature, 
                    new Bgr(0, 255, 0), Features2DToolbox.KeypointDrawType.Default);
            Random random = new Random();
            for (int i = 0; i < mKeyPoints.Length; i++)
            {
                Point keyP = new Point();
                keyP.X = (int)mKeyPoints[i].Point.X;
                keyP.Y = (int)mKeyPoints[i].Point.Y;
                CvInvoke.Circle(src1, keyP, 3, new MCvScalar(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255)), -1);
            }
            CvInvoke.Imshow("drawkeypoint", sift_feature);
            CvInvoke.Imshow("out", src1);
            CvInvoke.WaitKey(0);

        }
    }
}

效果

该算法计算的特征点具有旋转不变性与缩放不变性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

25-轮廓最小外接矩形(minAreaRect())(EmguCV学习) 文章目录说明Code效果 说明 Code using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Emgu.CV; using Emgu.Util; using Emgu.CV.Util; using Emgu... 阅读详情

相关推荐

C#-EmguCV 特征匹配

C#版本EmguCV,实现特征匹配,对特征点进行处理,标识

surf 检测

using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.Runtime.InteropServices; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Features2D; u...

qq_36786800的博客 1368

C# 使用EmguCV 拼接图片(用于多张照片合成全景图)

C# 使用EmguCV 拼接图片(用于多张照片合成全景图) ,一个简单的应用程序,选择几张图片,拼接图片,并保存

Emgucv SURF特征点的寻找和匹配

使用SURF类和其相关的函数需要添加Emgu.CV.Features2D和Emgu.CV.XFeatures2D这两个命名空间,同时也可以使用cuda模块来进行加速,由于使用Cuda需要安装,但Cuda目前支持的显卡驱动并不兼容win10,所以这里我就简单的说一下通用的方法吧。 这个代码里使用了UMat,UMat应该算是3.0版本中的新特性,根据官方的说法,UMat等价于Opencv中的Mat。具

k 2万+

SIFT算法提取图像特征

基于无监督学习,无需训练数据, 使用SIFT算法提取图像特征,再使用KMeans聚类算法进行图像分类。 对源代码进行了优化,实现了对应图片自动分类到各自文件夹功能,并且优化了分类准确率。 设计思路: 1)首先编写百度图片搜索网络爬虫(我github其他仓库有),批量下载猫狗等图像数据,构建数据集。 2)利用opencv库对图像数据进行处理,进行灰度化,二值化,膨胀,高斯滤波等操作 3)学习SIFT算法跟KMeans聚类算法,取其优点 4)编写代码进行图像分类 本次使用的是传统图像分类方法,下次会实现基于深度学习卷积神经网络图像分类。

移动机器人底盘-四轮差速模型(四轮独立)

对于底盘的前轮和后轮来说,其速度是同步的,那么在理想条件下,可以将底盘运动视为以ICR为圆心做圆周运动,对于四个轮子来说,圆周运动的角速度是一致的,圆周运动圆心ICR始终位于底盘几何中心COG的y轴延长线上,ICR与COG之间的距离。有关,整个底盘的速度位于速度瞬心COM处,用。四轮差速底盘设定左轮、右轮得速度分别为。圆周运动的角速度公式如式1所示。受约束,约束与圆周运动的角速度。合成,设四个轮子的速度分别为。,设左轮和右轮之间的轴距为。为圆周运动角速度,线速度为。,其均由预设目标速度。

Moresweet 猫甜 1万+

SIFTC#举例

SIFTC#举例

xie__jin__cheng的博客 606

VTK学习(入门级教程,包括安装和使用)~持续更新中

说明:研究QT+VTK有段时间了,准备把学到的东西分享给大家,这篇博客以VS+QT+VTK为主进行展开学习的。

HXX904的博客 4755

33-SIFT特征匹配(EmguCV学习)

@toc Record compute()方法用来计算特征描述符, 得到特征描述符后进行暴力匹配(BF) :在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行距离测试,返回距离最近的关键点; Code 效果 ...

hello 2278

遥感大模型之Prithvi的关键技术解读

Prithvi系列模型开创了遥感领域基础模型新范式,通过海量多源时空数据(HLS和SAR)与Vision Transformer架构的深度融合,采用掩码自编码器进行自监督预训练,实现了强大的地球观测表征能力。该技术体系突破传统方法在全局建模、多模态融合和时空分析上的局限,仅需少量标注数据即可在土地分类、灾害监测等任务上取得优异表现。从初代3亿参数到Prithvi-EO-2.0的10亿参数升级,展现了模型可扩展性,为构建地球数字孪生智能基座奠定基础。

panshengwu的博客 865

rk3576之imx415 4k@60fps

1;0;1;0;1;0;1;0;1;0;1;0;1;0;

darennet的专栏 704

EmguCV学习笔记 C# 7.2 特征点检测

SIFT算法是一种基于尺度空间极值检测和高斯差分图像描述子的算法,具有较高的特征检测精度和描述子匹配准确性,它可以在不同尺度和旋转角度下检测和描述图像中的特征点,由于其良好的尺度不变性和旋转不变性,被广泛应用于计算机视觉领域。在使用SIFT算法提取特征描述子时,特征描述子保存在一个Mat类型变量中,该Mat的大小是“关键点的数量×128”,对应Mat的“行×列”,每个关键点为一行,128表示每个特征描述子包含128个数值,这些数值表示了关键点周围区域的特征信息,可以用于描述和区分不同的关键点。

学习微软 .net 技术开发 2085

SAP BSIS:总账未清项表(Open Items)总账未清项 包含哪些业务 请给以举例说明

SAP总账未清项是指需要未来核销的会计行项目,仅适用于勾选"未清项管理"的总账科目。典型业务场景包括:供应商预付款(借方未清项)、员工备用金(借方未清项)、客户预收款(贷方未清项)和保险理赔(借方未清项)。系统通过表BSIS/BSAS跟踪未清项,支持明细追踪和账实核对。核心价值在于提供总账级别的明细管理能力,确保往来款项完整清账,简化对账流程,满足特殊业务管理需求。可通过FBL3N事务码查询和管理所有总账未清项。

金牌架构师 723

Emgu cv中的SIFT算法实现

SIFT算法大家都比较熟悉,网上的版本很多,刚开始接触时我主要研究的是C++,因为相对于C#,基于OPEN CV C++的SIFT算法资料更多,但是由于想要实现较为理想的界面效果,最终还是放弃了使用C++转而使用C#。 C#中SIFT算法主要分为三种: 1)脱离Emgu cv平台,完全手动实现所有SIFT算法函数,这样的程序虽然实现有些困难,但是完全可借助已有的C++程序做更改,而

XIANG__jiangsu的专栏 3230

【OpenClaw从入门到精通】第02篇:5分钟速通!阿里云/华为云一键部署OpenClaw(附避坑指南·2026实测版)

本文聚焦OpenClaw的云端部署场景,针对本地部署“关机即离线、跨设备访问难”的痛点,详解阿里云(主推)和华为云(备选)的一键部署流程。2026实测验证:阿里云轻量应用服务器通过官方OpenClaw镜像可5分钟完成部署,华为云Flexus L实例需补充SSH配置步骤;文中拆解云端部署核心概念(地域选择、端口放行、成本构成),通过“AI助理定时抓取行业资讯并推送钉钉”的虚拟案例演示云端7×24小时运行价值,同时提供模型调用、服务器成本的精细化控制方案,梳理端口访问失败、API-Key权限异常等高频坑点的解决

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 5542

41、矩形和圆柱形开槽微带贴片天线设计及性能分析

本文提出了一种适用于ISM频段(2.4 - 2.48 GHz)的微带圆形贴片天线,专为生物医学植入和可穿戴设备设计。通过在贴片上蚀刻矩形槽并去除圆柱形槽,实现了小型化与性能优化。采用Rogers 3010基板材料,结合缺陷接地结构(DGS)技术,有效改善了带宽、回波损耗和极化纯度。仿真结果显示,天线在弯曲状态下仍保持良好性能,回波损耗达-13 dB,VSWR为1.6,方向性提升至5.38 dB。与以往设计相比,本次设计在回波损耗和谐振频率稳定性方面表现优异,具备良好的生物相容性和应用潜力。未来将从开槽结构、

github5actions的博客 258

C# 利用Emgu.CV,多张图片合成全景图

一、Nuget上引用Emgu.CV的包,使用4.1.X版本 二、vs建立WPF测试工程 MainWindow上放一个Image控件用来展示合成后的图片。放一个合成按钮 三、准备图片源文件夹,我准备了连续拍摄的18张图片的文件夹。 Stitcher stitcher = new Stitcher(Stitcher.Mode.Panorama); Mat[] mat1 = new Mat[18]; Mat[] mat2 = new Mat[...

glmushroom的专栏 1600

EMC辐射整改常用的4种整改方法

例如,产品设计研发工程师们根据需求,设计出效果良好的滤波电路,置入产品I/O(输入/输出)接口的前级,可使因传导而进入系统的干扰噪声消除在电路系统的入口处;通过选择元器件和合理安排的电路系统,使干扰的影响减少。有些频率点是通过电路板上走线分布参数所决定的,通过前述方法不大有用,此类整改通过在走线中增加小的电感、电容、磁珠来改变电路参数结构,使其移到限值要求较高的频率点上。电线电缆的分类整理在电子设备中,线间耦合是一种重要的途径,也是造成干扰的重要原因,因为频率的因素,可大体分为高频耦合与低频耦合。

学海无涯的专栏 3119

Emgu.CV训练自己的hog特征,可实现任意物体的检测

emgu.cv自行训练HOG,目前最详细的一篇C#资料

技术+管理+经验+沟通+人品=>合格的项目管理者 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

34-SURF特征匹配(EmguCV学习)

@toc Record Code 效果

hello 1506

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

c#Emgu.cv用Stitching类做图片拼接

c#Emgu.cv用Stitching类做图片拼接 本人刚刚学习c#的图片拼接技术,通过网上找的相关资料,自己整合一下 系统环境为WIN10,软件开发环境为VISIO2019的C#,Emgu.cv版本4.3.0.3890 在visio开发软件中找到工具——NuGet包管理器,下载最新的Emgu4.3.0.3890。 同时找到emgu的安装位置如:emgucv-windesktop 4.3.0.3890\libs里的X86和X64文件放到项目所在的bin\debug下,否则会报错。 用windows窗体创

estella1984的博客 2007

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Emgucv使用FaceRecognizer类人脸识别

这是之前写的用的Opencv做的,相同的方法。http://blog.csdn.net/qq_22033759/article/details/48578191using System; using System.Windows; using System.Collections.Generic; using System.ComponentModel; using System.Data; usi

k 8739

基于Emgu cv的图像拼接(转)

分类: 编程 C# Emgu cv Stitching 2012-10-27 11:04 753人阅读 评论(1) 收藏 举报 在新版本的Emgu cv中添加了Emgu.CV.Stitching,这极大的方便了图像拼接程序的实现。 实现步骤非常简单,首先读取图片,保存为多图片矩阵,再使用Stitching接口提供的Stitch方法完成,具体程序如下: Imag...

weixin_30663391的博客 641

emgucv中SIFT、SURF匹配算法

emgucv3.0.0有自带的SIFT和SURF匹配算法,在文件夹C:\Emgu\emgucv-windows-universal 3.0.0.2157\Emgu.CV.Example(该文件夹含有许多emgucv案例)下的SURFFeature下,该程序直接可以运行,是现成的SURF算法可以用来做匹配算法比较。 emgucv库中也含有SIFT算法,只需要将代码中 SURF对象改变为SIFT对象即可。 ...

weixin_42062353的博客 845

emgu中对应opencv的函数查询

自己以前做过一些C#工程的开发,所以对C#比较熟悉。接触opencv时,发现其是用C++编写的,网上的资料比较多。所以就想一边学习C++一边学opencv,学了几天后发现很痛苦,c++和c#差别太大,自己始终脱离不了C#的思维。后来就发现了EMGU 是opencv的.Net封装库。但是网上emgu的资料太少了,只能看opencv的资料搞emgu。有的时候opencv中的函数在emgu中找不到。比如...

weixin_30493321的博客 284

EmGUCV中类函数 FastFeatureDetector使用详解

释义:FAST(加速检测特)关键点检测器,源自 E. Rosten ("Machine learning for high-speed corner detection, 2006). 继承关系:Emgu.CV.Features2D.FastFeatureDetector 派生:Emgu.CV.Cuda.CudaFastFeatureDetector 定义(C#): 方法(检测特征点) 实例演示:

lichaoqi1的博客 621
上一篇: C#之Chart控件系列教程——一(转载)
下一篇: CHUSEI 3D Webcam摄像头双目模式使用(转载)
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值