cvCornerHarris角点检测

数字图像处理【14】特征检测——Harris角点检测 在上一篇文章已经介绍了opencv特征检测中的一些必要的概念,介绍了什么是特征,什么是角点,这些角点特征可以做什么。今天来看看对于我们人来说很容易就识别到角点特征,对于计算机来说是如何识别的,具体的步嘴原理是怎样的。 阅读详情


#include "cv.h"
#include "highgui.h"
#include "iostream"
using namespace std;
using namespace cv;
int flag=1;
int main(int argc,char** argv)
{  

 IplImage *src=cvLoadImage("line.jpg");
  cvShowImage("src1",src);
 IplImage *Ipl_Gray=cvCreateImage(cvGetSize(src),8,1);
 IplImage *Ipl_32F=cvCreateImage(cvGetSize(src),IPL_DEPTH_32F,1);
 cvCvtColor(src,Ipl_Gray,CV_RGB2GRAY);
 cvCornerHarris(Ipl_Gray,Ipl_32F,7,3);
 cvShowImage("32",Ipl_32F);
/**************显示图片的实际像素值 **********************
 while(flag)
 {
    for(int i=0;i<src->height ;i++)
    {  
     for(int j=0;j<src->width;j++)
     {
      double value= cvGetReal2D(Ipl_32F,i,j);

      printf("%f  ",value);
     }
      printf("\n ");
    }
    flag=0;
 }
******************************************************/
  double minVal,maxVal;
  double minVal1,maxVal1;
 
 cvMinMaxLoc(Ipl_32F,&minVal,&maxVal,NULL,NULL,0);
 IplImage *Ipl_out=cvCreateImage(cvGetSize(src),8,1);
     double Scale;
  double Shift;
  Scale =255/(maxVal-minVal);
  Shift =-minVal*Scale;
  cvConvertScale(Ipl_32F,Ipl_out,Scale,Shift);
  cvShowImage("out",Ipl_out);
  while(flag)
 {
    for(int i=0;i<src->height ;i++)
    {  
     for(int j=0;j<src->width;j++)
     {
      double value= cvGetReal2D(Ipl_out,i,j);
   if(value>120)
   {
   cvCircle(src,cvPoint(j,i),1,CV_RGB(55,55,125),1,8);
   }
     // printf("%f  ",value);
     }
     // printf("\n ");
    }
    flag=0;
 }
   cvShowImage("src",src);
 // cvMinMaxLoc(Ipl_out,&minVal1,&maxVal1,NULL,NULL,0);

 //cout<<minVal1<<endl;
  //  cout<<maxVal1<<endl;
 cout<<minVal<<endl;
    cout<<maxVal<<endl;
 cvWaitKey();

     return 0;

}

重点介绍cvCornerHarris函数的用法细节

CornerHarris

哈里斯(Harris)边缘检测

void cvCornerHarris( const CvArr* image, CvArr* harris_responce, int block_size, int aperture_size=3, double k=0.04 );
image
输入图像。
harris_responce
存储哈里斯(Harris)检测responces的图像。与输入图像等大。
block_size
邻域大小(见关于cvCornerEigenValsAndVecs的讨论)。
aperture_size
扩展 Sobel 核的大小(见 cvSobel)。格式. 当输入图像是浮点数格式时,该参数表示用来计算差分固定的浮点滤波器的个数。
k
Harris detector free parameter. See the formula below.

The function cvCornerHarris runs the Harris edge detector on image. Similarly to cvCornerMinEigenVal and cvCornerEigenValsAndVecs, for each pixel it calculates 2x2 gradient covariation matrix M over block_size×block_size neighborhood. Then, it stores

det(M) - k*trace(M)2 to the destination image. Corners in the image can be found as local maxima of the destination image

第一个参数是输入的图像;
第二的参数是 harris_responce(要是是32 位的浮点dan通道图像)
(看看以上的第一个图:是读回这个参数的值,这个表面了,经过cvCornerHarris处理过后的值变成很小的浮点值)
这也是表命了,cvCornerharris处理去处理图像的时候,必须采用32位的浮点型)

另外,读回来的值这么小,怎么转换为图像呢,这就需要cvconvertScale转换为适合一定范围的图像值
 double Shift;
  Scale =255/(maxVal-minVal);
  Shift =-minVal*Scale;
  cvConvertScale(Ipl_32F,Ipl_out,Scale,Shift);

下面是处理过后的彩色图像

OpenCV(四十二):Harris角点检测 什么是角点?角点指的是两条边的交点,图中红色圈起来的点就是角点。Harris角点检测原理:首先定义一个矩形区域,然后将这个矩形区域放置在我的图像中,求取这个区域内所有的像素值之和,之后沿着多个方向移动我这个区域,再次计算新区域的像素值之和,如果移动前和移动后的像素值两者的差值比较小,那么就不是Harris角点,如果两者之间差值比较大,就认定移动前覆盖的区域内存在Harris角点。如图:下图两条线形成角点,而矩形区域分别表示平面、边界、角点。 阅读详情

相关推荐

几种角点检测算法实现

本科毕业论文中的角点检测 包含moravec、harris、Nobel、Shi-tomasi角点检测算法 包含拟合亚像素角点、向量点乘亚像素角点算法 此外还有矩阵的通常运算加减乘除、求逆等 程序采用opencv+Qt5 GUI

Harris角点检测

Harris角点检测

qq_41596730的博客 4976

ROS新手必看:如何用URDF快速搭建UR5机械臂模型(附完整代码)

本文为ROS新手提供了一份详细的UR5机械臂URDF建模实战指南。通过解析URDF核心概念,逐步讲解如何定义link与joint,并整合官方网格文件,最终构建出完整的、可在RViz中可视化与控制的UR5模型。文章还介绍了模型验证、调试技巧以及如何添加碰撞与惯性属性,为后续的物理仿真与算法开发奠定坚实基础。

pz89012345的博客 498

<图像处理> Harris角点检测

特征提取之:Harris角点检测

thisiszdy的博客 2410

Docker+vLLM内网离线部署Qwen3 流程

本文介绍了在CentOS 7系统下进行VLLM容器化部署Qwen3-32B大模型的内网离线方案。首先需准备Nvidia显卡驱动、CUDA 12.4和Docker环境。通过联网机器拉取vllm/vllm-openai镜像并导入内网服务器,同时从魔塔社区下载模型文件。部署时使用docker run命令启动容器,配置了GPU资源、内存共享、端口映射等参数,特别指定了模型路径、并行计算、内存利用率等关键参数。该方案实现了大模型在内网环境的安全高效部署,适用于需要离线运行的AI推理场景。

qq_42881308的博客 1036

L298N电机驱动模块的接线使用与代码实现

#include "iostm8s208mb.h" #define u8 uint8_t #define u16 uint16_t #define u32 uint32_t typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; // 关于LED灯的宏定义 #define LED2 PI_ODR_ODR2 //输出量 #define LE

Clichong 13万+

图像处理(九)——Harris角点检测

实现Harris角点检测算法,并与OpenCV的cornerHarris函数的结果进行比较。 特征点在图像中一般有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、以及某些梯度特征等。角点可以简单的认为是两条边的交点。如下图所示: 在各个方向上移动小窗口,如果在所有方向上移动,窗口内灰度都发生变化,则认为是角点;如果任何方向都不变化,则是均匀区域;如果灰度只在一个方向上变化,则可能是图像...

南木的博客 3020

深入解析MSPM0系列Keil开发中‘ti_msp_dl_config.h‘缺失问题的根源与修复

本文深入解析TI MSPM0系列Keil开发中'ti_msp_dl_config.h'文件缺失问题的根源与修复方法。该错误常见于编译时提示file not found,主要因SysConfig工具未正确生成或工程路径配置错误导致。文章提供了从环境检查、手动生成文件到工程配置调整的系统化解决方案,帮助开发者快速解决这一常见KEIL开发难题。

gold的博客 970

OpenCV —— 角点检测之 Harris 角点检测、Shi-Tomasi 角点检测、FAST 角点检测

Harris 角点检测实现原理OpenCV 函数优化GFTT 在图像处理和计算机视觉领域,兴趣点(inter points),也被称作关键点(key points)、特征点(feature points)。它被大量用于解决物体识别、图像识别、图像匹配、视觉跟踪、三维重建等一系列的问题。我们不再观察整幅图,而是选择某些特殊的点,然后对它们进行局部有的放矢地分析。如果能检测到足够多的这种点,同时它们的区分度很高,并且可以精确定位稳定的特征,那么这个方法就具有实用价值。 图像特征类型可以被分为如下三种: 边缘

学无止境 9446

AMDGPU IH(Interrupt Handler)实现分析

AMDGPU IH环形缓冲区机制是显卡驱动中高效处理GPU硬件中断的核心架构。该机制通过环形缓冲区存储中断事件,利用读写指针(wptr/rptr)同步硬件与驱动间的数据交互。硬件写入事件后驱动遍历处理,通过指针掩码实现环形循环,并具备溢出检测和虚拟化环境下的重置保护。其优势在于批量处理降低中断开销,指针同步确保可靠性,支持多队列扩展和SR-IOV虚拟化场景,为GPU中断管理提供了高性能基础架构。

图形/计算GPU的驱动与虚拟化技术分享园地 1638

备战2025数学建模国赛(算法29):博弈论在数学建模竞赛中的应用

博弈论为数学建模竞赛提供了强大的分析工具,尤其适用于涉及多方互动决策的问题。本文介绍了博弈论的核心模型、算法实现及竞赛应用案例,并提供了完整的Python代码实现。扩展阅读方向不完全信息博弈与贝叶斯均衡合作博弈与联盟形成机制设计与拍卖理论随机博弈与马尔可夫决策过程博弈论与机器学习的结合。

YOLO 442

角点检测(Harris角点检测法)

目录原理讲解【1】为何选取角点作为特征?【2】角点的定义:【3】判断角点的方法:【4】Harris角点检测法示例Opencv自带函数:cornerHarris()函数示例程序1示例程序2 原理讲解 【1】为何选取角点作为特征? 角点是一种局部特征。 角落上的可区分性特别强,边缘次之,平滑区域则基本没有区分性。 【2】角点的定义: 【3】判断角点的方法: 这里有个细节:将计算的所有方向上的变化......

hanhan的博客 1万+

交换机初始化配置详解

MGMT或称MGT(Management Port,管理端口)是一个可以连接计算机的三层主机端口,如下图所示。只需使用一条双绞线跳线,就可以将计算机的以太网端口与交换机的MGMT端口连接在一起,实现对交换机的配置与管理。也就是说,可以使用MGMT端口代替Console端口实现对交换机或交换机堆叠的网络管理。MGMT端口既可用于交换机的初始化,也可以在交换机初始化完成后,以Telnet、Web浏览器或Cisco CNA方式进行管理。当将计算机连接到独立的交换机时,连接方式如下图所示。

悦分享 1993

OpenCV角点检测

原图: 函数cvCornerHarris   在Delphi中测试cvCornerHarris,报错,而且使用默认参数去调用函数无法检测出脚点.查资料发现如果输入的是灰度图像,则输出图像必须是单精度浮点图像.即创建输出图像时需要使用IPL_DEPTH_32F格式.而且要得到图像的角点,必须逐个测试参数,找到与图像相匹配的参数值. It seems like you are using a

henreash的专栏 5516

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

cvCornerHarris角点提取实例c++

cvCornerHarris: 功能:检测图像的哈里斯角点检测,判断出某一点是不是图像的角点 函数形式: void cvCornerHarris( const CvArr* image, CvArr* harris_responce, int block_size, int aperture_size=3, double k=0.04 ); 参数列表: Image 输入图像 harris_responce存储哈里斯检测responces的图像。与输入图像等大 block_size 邻域大小(见关于cvCor

weixin_41469272的博客 576

WINCC7.3破解文件

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

opencv角点检测android,基于opencv的角点检测

OpenCV角点检测小结1,cvGoodFeaturesToTrack,cvCornerMinEigenVal,CornerEigenValsAndVecs是一类,用到了图像差分的相关矩阵。2,CornerHarris,利用CornerEigenValsAndVecs得到的图像差分相关矩阵,据其特征值和向量,判断角点, Harris角点探测器R(x,y)=det(M)-k*trace^2(M)...

weixin_28875235的博客 208

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Harris角点检测及代码分析(续)

紧接着“Harris角点检测及代码分析”,这里主要分析OpenCV的cvGoodFeaturesToTrack()函数,这才是角点提取的真正代码。

mqfcu8的专栏 862

8.2检测Harrris角点

Harris角点检测: void cornerHarris(InputArray src, OutputArray dst, int blockSize, int ksize, double k, int borderType=BORDER_DEFAULT) 参数详解: src image输入图像。 dst harris_responce 存储哈里斯(Harris)检测responces的图

qq_16968451的博客 394

opencv

最近一直在学习opencv和图像处理,自己作个总结吧 int Corner(int i) { int totalnum; cvSetCaptureProperty(capture,CV_CAP_PROP_POS_FRAMES,i); IplImage* imageB = cvQueryFrame(capture); cvSetImageROI(imageB, cvRect(Size,Size,...

TLZL0526的专栏 217

opencv harris角点检测

//cvCornerHarris 角点提取 精度低 //cvCornerHarris函数检测的结果实际上是一幅包含Harris角点的浮点型单通道图像如果要计算Harris角点列表,需要使用 cvGoodFeatureToTrack函数,并传递适当的参数。   #include "cv.h" #include "highgui.h" #include "iostream" using

azoo的专栏 5712

Harris algorithm based on openCV

Harris algorithm based on openCVThose time, I plan to do with those corner detect algorithms, such as Harris, SIFT, ASIFT.So today I finish the Harris detect and others will be finished in some days.Harris algorithm:Step 1:对每一像素点计算相关矩阵M。The result Image:An

yongdun_007的专栏 767

Harris角点检测源码

第一种 #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include #include #include using namespace cv; using namespace std; /// Global variables Mat src, src_gray; in

zhangcz0106的专栏 567

cvCornerHarris函数

功能:检测图像的哈里斯角点检测,判断出某一点是不是图像的角点   函数形式: void cvCornerHarris( const CvArr* image, CvArr* harris_responce, int block_size, int aperture_size=3, double k=0.04 );   参数列表: Image 输入图像 harris_responce存

jinwanchiji的博客 759

基本的opencv图像处理函数

原文地址:基本的opencv图像处理函数作者:宁静致远lsp155.cvCanny:Canny边缘检测; 156.cvSobel:图像边缘检测,Sobel算子; 157.cvLaplace:拉普拉斯变换、图像边缘检测; 150.cvThreshold:图像阈值化; 178.cvEqualizeHist:直方图均衡化; 179.cvCreateHist:创建一新直方图; 180.cvReleaseH

宁静致远的博客 1001

OpenCV学习笔记

转载出处:http://blog.youkuaiyun.com/byxdaz/article/details/4909452 一、OpenCV概述与功能介绍 OpenCV是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外

xiahouzuoxin 1986
上一篇: HoughLines2霍夫直线的提取
下一篇: opencv 2.4.11 cuda5.5 总结
C_ROS
博客等级 码龄12年 9粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值