OpenCV图像匹配算法之brisk

OpenCV4学习笔记(47)——BRISK特征提取描述算法 今天要整理记录的是OpenCV中BRISK特征提取描述算法的运用。 BRISK特征提取描述算法全称为 Binary Robust Invariant Scalable Keypoints(二进制鲁棒不变可扩展关键点)。BRISK算法也是SIFT算法的一种改进型,主要是针对于旋转不变性、鲁棒性、运算速度等方面做了优化,其大致流程如下: (1)在提取特征点阶段与SIFT算法类似(可见,同样是构造多尺度... 阅读详情
//brisk.cpp  
    #include "stdafx.h"  
    #include <cv.hpp>  
    #include <highgui.h>  
    #include "utils.h"  
    #include <iostream>  
    using namespace std;  
      
    void brisk(char* path1, char* path2, INFO& info, bool show)  
    {  
        double t1,t2;  
        t1=cvGetTickCount();  
      
        initModule_nonfree();  
      
        Mat img1, img2;  
        img1=imread(path1,0);  
        img2=imread(path2,0);  
        if(img1.data==NULL)  
        {  
            cout<<"The image can not been loaded: "<<path1<<endl;  
            system("pause");  
            exit(-1);  
        }  
        if(img2.data==NULL)  
        {  
            cout<<"The image can not been loaded: "<<path2<<endl;  
            system("pause");  
            exit(-1);  
        }  
      
        BRISK dbrisk(BRISK_HTHRES,BRISK_NOCTAVES);  
        vector<KeyPoint> kpts1_brisk, kpts2_brisk;  
        Mat desc1_brisk, desc2_brisk;  
        Ptr<cv::DescriptorMatcher> matcher_l1 = DescriptorMatcher::create("BruteForce-Hamming");      //二进制汉明距离匹配  
        vector<vector<DMatch> > dmatches_brisk;  
        vector<Point2f> matches_brisk, inliers_brisk;  
          
        dbrisk(img1,noArray(),kpts1_brisk,desc1_brisk,false);  
        dbrisk(img2,noArray(),kpts2_brisk,desc2_brisk,false);  
        info.n1=kpts1_brisk.size();  
        info.n2=kpts2_brisk.size();  
      
        matcher_l1->knnMatch(desc1_brisk,desc2_brisk,dmatches_brisk,2);  
        matches2points_nndr(kpts1_brisk,kpts2_brisk,dmatches_brisk,matches_brisk,DRATIO);  
        info.m=matches_brisk.size()/2;  
        compute_inliers_ransac(matches_brisk,inliers_brisk,MIN_H_ERROR,false);  
        info.rm=inliers_brisk.size()/2;  
      
        t2=cvGetTickCount();  
        info.t=(t2-t1)/1000000.0/cvGetTickFrequency();  
      
        Mat img1_rgb_brisk = imread(path1,1);  
        Mat img2_rgb_brisk = imread(path2,1);  
        Mat img_com_brisk = Mat(Size(img1.cols*2,img1.rows),CV_8UC3);  
      
        if(show == true)  
        {  
            draw_inliers(img1_rgb_brisk,img2_rgb_brisk,img_com_brisk,inliers_brisk,2);  
            imshow("brisk",img_com_brisk);  
            waitKey(0);  
        }  
      
        return;  
    }  

使用
    INFO brisk_info;  
    brisk(path1,path2,brisk_info,false);  
    showInfo(brisk_info); 
图像匹配算法比较与分析 1.感知哈希(pHash)算法的Opencv实现 均值Hash算法 //均值Hash算法    string HashValue(Mat &src)    {        string rst(64,'\0');        Mat img;        if(src.channels()==3)            cvtColor(src,img,CV_BG 阅读详情

相关推荐

OpenCV图像特征提取与检测C++(五)特征描述子--Brute-Force匹配、FLANN特征匹配、平面对象识别、AKAZE局部特征检测与匹配、BRISK特征检测与匹配、ORB特征提检测与匹配

特征描述子 即图像中每个像素位置的描述,通过此描述去匹配另一张图像是否含有相同特征。 暴力匹配:Brute-Force 图像匹配本质上是特征匹配。因为我们总可以将图像表示成多个特征向量的组成,因此如果两 幅图片具有相同的特征向量越多,则可以认为两幅图片的相似程度越高。而特征向量的相似程度通常是用它们之间的欧氏距离来衡量,欧式距离越小,则可以认为越相似。 代码: #include &amp;amp;amp;lt...

法兰西流浪者博客 2018

【OpenCV 例程 300篇】245. 特征检测之 BRISK 算子

尺度不变的二进制特征描述 BRISK (Binary Robust Invariant Scalable Kepoints), 是改进的 BRIEF 算法,也是二进制特征描述符。具有高计算效率和旋转不变性、尺度不变性,对噪声也有一定的鲁棒性。

youcans的博客 3805

Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配

Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配视频项目中要用到拼接,这里记录一下SIFT、SURF、ORB三种特征点。 本文不做过多的理论解释,只是利用opencv简单实现三种特征点匹配算法的验证(改进的部分暂未上传)。代码下载地址:Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配 环境: Windows下vs2010,opev2.4.9; 代码relea

2010yhh 3万+

OpenCV3学习(11.7) BRISK特征检测器及BRISK描述符

BRISK算法一种特征提取算法,也是一种二进制的特征描述算子。 它具有较好的旋转不变性、尺度不变性,较好的鲁棒性等。在图像配准应用中,速度比较:SIFT<SURF<BRISK<FREAK<ORB,在对有较大模糊的图像配准时,BRISK算法在其中表现最为出色。 BRISK算法 Brisk(Binary Robust Invariant Scalable ...

知识搬运工的博客 2712

OpenCV图像匹配算法之sift

OpenCV图像匹配算法之sift

cjc211322的专栏 3652

特征检测和描述模块 - BRISK类

本文将详细介绍BRISK类的使用方法,并提供相应的源代码示例。然后,我们创建了一个BRISK对象,它将用于执行特征检测和描述。通过使用BRISK类,我们可以方便地进行特征检测和描述,从而实现各种计算机视觉任务。根据具体的应用需求,你可以调整BRISK算法的参数来达到更好的性能和效果。现在,我们已经完成了特征检测和描述的整个过程。该方法接受两个参数:输入图像和一个可选的掩膜,我们在这里传入了。方法将关键点绘制在图像上,并显示了带有关键点的图像。最后,在第5步中,我们使用BRISK对象的。

CodeWOW的博客 211

【教程】Autojs使用OpenCV进行SIFT/BRISK等算法进行图像匹配

亲测可用

xfxuezhang.cn 6602

特征描述与提取在计算机视觉领域中扮演着重要的角色,它们被广泛应用于图像识别、目标检测和图像匹配等任务中

特征描述是将图像中的关键点转换为能够表示其特征的向量或描述子的过程。特征描述与提取在计算机视觉领域中扮演着重要的角色,它们被广泛应用于图像识别、目标检测和图像匹配等任务中。除了SIFT之外,你也可以尝试使用其他的特征描述算法,比如SURF、ORB和BRISK。它们的使用方式类似,只需要将代码中的算法对象和函数替换为对应的算法即可。接下来,我们可以选择一个特定的特征描述算法,并创建一个该算法的对象。最后,我们可以在图像上绘制检测到的关键点。通过运行上述代码,我们可以在一个窗口中显示带有检测到的关键点的图像。

2301_79325339的博客 221

特征描述子:BRIEF与BRISK算法的原理及应用

本文深入探讨了BRIEF与BRISK算法的原理及应用,这是计算机视觉领域中重要的特征描述子技术。文章首先介绍了算法的核心概念与背景,强调了这些技术在提升视觉算法效率、精度和问题解决能力方面的重要性。随后详细解析了技术原理,包括图像处理流程和关键实现方法,并提供了Python+OpenCV的实践代码示例。文章还列出了典型应用场景,如目标检测、图像拼接等,并指导读者完成环境配置和基础实践。这些内容为计算机视觉开发者掌握特征提取与匹配技术提供了系统指导。

编程世界如山海,探索不止。 1万+

5.1 Tessent Atpg系列 第八章 Test Pattern Generation - Verify Test Pattern

为什么要做基于timing的仿真,意义在于可以比较ATPG工具和simulator工具的差异性。因为时序的差异导致不同的结果。首先你需要通过write_patern 这句cmd来写出pattern,默认是parallel 模式,除非你用-serial 指定写出serial, 因为serial 文件非常大,所以你可以使用-sample 开关写出部分pattern即可,工具会根据每一种pattern 类型都会至少保存一只。 另外,你也可以使用-start -end 开关来减少文件大小,但是这样的截取,是不可靠的

ciscomonkey的博客 7763

3D视觉革命丨多相机协同拼接技术如何重塑工业检测边界

本文深入探讨了多相机协同拼接技术如何突破单台3D相机的物理局限,实现工业检测从“点面”到“立体”的无死角覆盖。通过拆解系统标定、同步融合等核心技术,并结合锂电池、长轴零件等实战案例,揭示了该技术如何以虚拟“超级视觉传感器”重塑检测边界,提升精度与效率。

weixin_29056865的博客 387

opencv:特征匹配

一:简述 在前面两节,我们介绍了各种特征检测的算法,SIFT、SURF、HOG、LBP、Haar等等,通过这些算法我们得到了关于一幅图像的特征描述子,接下来我们可以利用这些特征描述子进行图像与图像之间的匹配。 二:FLANN特征匹配 FLANN库全称是Fast Library for Approximate Nearest Neighbors,它是目前最完整的(近似)最近邻开源库。不但实...

cv_pyer的博客 4341

pytorch实现手语识别

连续手语识别项目,中文数据集CSL

masteryi-0018的博客 1万+

brisk尝试

import cv2 import matplotlib.pyplot as plt img_1 = cv2.imread( r"C:\Users\Administrator\Desktop\yuantu.jpg" ) img_2 = cv2.imread( r"C:\Users\Administrator\Desktop\jietu.jpg" ) img_1 = cv2.cvtCol...

qq_41579855的博客 635

无源低通滤波器

无源RC滤波器“滤除”不需要的信号,因为它们分离并允许仅通过其频率的正弦输入信号,最简单的是无源低通滤波器网络。在低频应用(高达100kHz)中,无源滤波器通常使用简单的RC(电阻-电容)网络构建,而高频滤波器(高于100kHz)通常由RLC(电阻-电感-电容)元件制成。无源滤波器由电阻器、电容器和电感器等无源元件组成,没有放大元件(晶体管、运算放大器等),因此没有信号增益,因此它们的输出电平始终小于输入。滤波器是根据它们允许通过它们的信号的频率范围来命名的,同时阻挡或“衰减”其余部分。

weixin_44448586的博客 1万+

python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法

出现该Bug的原因主要是 账号密码无法登录,但原先使用该代码测试qq或者163的时候是可以通过的!问题在于各个公司邮件所处理的代码方式不一样

码农研究僧的博客 3503

BRISK特征提取,如何实现毫秒级的图像匹配?

该算法巧妙地结合了FAST特征点检测的高效性与二进制描述子(如BRIEF)的快速匹配优势,同时通过尺度空间金字塔和灰度梯度信息来增强其尺度与旋转不变性,使其在保持较高鲁棒性的同时,拥有极快的计算和匹配速度。:使用基于CNN的特征点检测器(如SuperPoint)替代传统的FAST检测器,可以获取更稳定、可重复性更高的特征点位置,提升整体流程的鲁棒性。:将BRISK二进制描述子与其他互补的特征(如颜色直方图、边缘信息或轻量级CNN特征)进行融合,形成混合描述子,以提升在特定场景下的性能。

Try_再努力一点 800

CAPL编程规范与最佳实践

通过本文的学习,读者应该对CAPL编程规范与最佳实践有了初步的了解,并能够编写高质量的CAPL脚本。在实际项目中,CAPL的应用非常广泛,希望读者能够通过不断的学习和实践,掌握更多的CAPL技巧,提高自己的开发能力。

闲人编程的博客 1748

图像拼接opencv实现

::infoORB算法是一种结合了FAST和BRIEF的特征点提取和匹配算法,并且通过和使得其具有一定的旋转,尺度不变性common.hlen2。

zengwb的博客 458

【Windows Server 2019】组策略的配置与管理——理论基础

博文介绍了组策略的定义,作用和分类。组策略包括计算机配置和用户配置;组策略又分为为基于本地的组策略和基于AD(活动目录)的域组策略。并说明了不同组策略发生冲突时默认的规则。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

图像匹配

图像匹配有哪几种常用的算法实现,有没有常用的标准图像库对比各种算法的优缺点呢?       有知道的交流一下。

fendie123的专栏 999

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OpenCV示例2

#include <iostream> #include <opencv\cxcore.hpp> #include <opencv\cv.hpp> #include <opencv2\highgui\highgui.hpp> #include <opencv2\imgproc\imgproc.hpp> #include <opencv2\features2d\features2d.hpp> #inc

zdx19880830的专栏 679

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

opencv 二维图像 特征检测 特征描述 特征匹配 平面物体识别跟踪

github代码一、Harris角点 cornerHarris() R = det(M) - k*(trace(M))^2 算法基本思想是使用一个固定窗口在图像上进行任意方向上的滑动,  比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,  如果存在任意方向上的滑动,都有着较大灰度变化,  那么我们可以认为该窗口中存在角点。 图像特征类型: 边缘 (Edg...

万有文的博客 3118

OpenCV图像特征匹配算法ORB/SURF/BRISK

//必须转换为8位图像 Img.convertTo(img1, CV_8UC1,255,0); current_image.convertTo(img2,CV_8UC1,255,0); std::vector<cv::KeyPoint> keypoints1, keypoints2; double minDistance = 10; int blockSize = CORNER_BLOCKSIZE, gradientSize = CORNER_BLOCKSIZE;...

li4692625的博客 514
上一篇: 图像局部特征点检测算法综述
下一篇: 方向梯度直方图(HOG,Histogram of Gradient)学习笔记二 HOG正篇
Small_Smart_boy
博客等级 码龄10年 2粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值