`
touchmm
  • 浏览: 1037673 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

角点检测(corner detection)的源代码(需要OPENCV库的支持)

 
阅读更多

这是在 Ruadhan 提供的源代码基础上做了一些修改,可以检测图像中的角点。应用环境是:OPENCV BETA 4,VC6 编译运行通过。

运行文件下载地址:

http://www.assuredigit.com/program/corner.exe

==========
#include <stdio.h><br>#include "cv.h"<br>#include "highgui.h"<br>#define max_corners 100</stdio.h>

int main( int argc, char** argv )
{
int cornerCount=max_corners;
CvPoint2D32f corners[max_corners];
double qualityLevel;
double minDistance;
IplImage *srcImage = 0, *grayImage = 0, *corners1 = 0, *corners2 = 0;
int i;
CvScalar color = CV_RGB(255,0,0);
char* filename = argc == 2 ? argv[1] : (char*)"..//..//c//pic3.png";

cvNamedWindow( "image", 1 ); // create HighGUI window with name "image"

//Load the image to be processed
srcImage = cvLoadImage(filename,1);

grayImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 1);

//copy the source image to copy image after converting the format
cvCvtColor(srcImage, grayImage, CV_BGR2GRAY);

//create empty images of same size as the copied images
corners1= cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_32F, 1);
corners2= cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_32F, 1);

cvGoodFeaturesToTrack (grayImage, corners1, corners2, corners,
&cornerCount, 0.05, 5, 0);

printf("num corners found: %d\n", cornerCount);

// draw circles at each corner location in the gray image and
// print out a list the corners
if(cornerCount>0)
{
for (i=0; i<cornercount i> {<br> cvCircle(srcImage, cvPoint((int)(corners[i].x), (int)(corners[i].y)), 6,<br> color, 2, CV_AA, 0);<br> }<br> }<br><br> cvShowImage( "image", srcImage ); <br><br> cvReleaseImage(&amp;srcImage);<br> cvReleaseImage(&amp;grayImage);<br> cvReleaseImage(&amp;corners1);<br> cvReleaseImage(&amp;corners2);<br><br> cvWaitKey(0); // wait for key. The function has<br> return 0;<br>}<br></cornercount>

<!-- Signature -->

-----------------
敕勒川,阴山下
天似穹庐,笼罩四野
天苍苍,野茫茫,风吹草低见牛羊<!-- Signature --><!-- Message body ''"" -->
分享到:
评论

相关推荐

    基于opencv VS2008的harris角点检测

    在压缩包文件中,"harris corner detection"可能是实现Harris角点检测的源代码文件,包含了上述步骤的具体实现。通过阅读和理解这段代码,你可以更深入地了解如何在实际项目中应用Harris角点检测算法。 总之,...

    harris角点检测python实现及基于opencv实现

    在Python中实现Harris角点检测,可以使用OpenCV库,这是一个强大的计算机视觉库,提供了许多图像处理函数。在OpenCV中,可以调用`cv2.cornerHarris()`函数进行角点检测。这个函数需要输入图像、块大小、搜索窗口大小...

    C++OpenCV3源代码Harris角点检测

    ### C++ OpenCV3 源代码 Harris 角点检测 #### 一、Harris角点检测概述 在计算机视觉领域,特征检测是一项基础而重要的技术。它可以帮助我们从图像中提取出有意义的信息,比如边缘、角点等,进而进行更复杂的图像...

    C++OpenCV3源代码Shi-Tomasi角点检测

    ### C++ OpenCV3 源代码:Shi-Tomasi 角点检测 #### 一、概述 在计算机视觉领域,特征检测是一项基础而重要的技术。它可以帮助我们从图像中提取出有意义的信息,比如角点就是一种常用的特征点。Shi-Tomasi角点检测...

    corner-detection-project.zip_C# opencv_CSharp opencv_opencv c#_

    在本项目中,"corner-detection-project.zip" 是一个基于 C# 和 OpenCV 的角点检测应用。OpenCV 是一个广泛使用的计算机视觉库,它提供了多种功能强大的图像处理和计算机视觉算法,包括角点检测。C# 版本的 OpenCV...

    最新fastcorner角点算法。OPENCV

    总结来说,"Fastcorner"角点检测算法是OpenCV库中的一种高效算法,结合了机器学习的方法,旨在提供快速而准确的角点检测。对于那些需要在实时应用中处理大量图像数据的开发者而言,这是一个非常有价值的工具。

    EmguCV实现实时角点检测

    在`EMGU_STUDY_2.0`这个压缩包文件中,可能包含了项目的源代码、相关文档以及可能的示例图片,用于帮助理解角点检测的实现过程。通过学习和理解这个项目,开发者可以掌握EmguCV的基本用法,以及如何利用它进行实时的...

    C++OpenCV3源代码cornerHarris函数用法示例

    OpenCV(Open Source Computer Vision Library)作为一款强大的开源计算机视觉库,提供了丰富的功能支持,其中包括了用于检测图像中的角点的`cornerHarris`函数。本文将详细介绍`cornerHarris`函数的基本原理、参数...

    Opencv项目实战:02 角度探测器.zip

    OpenCV库内含几种不同的角点检测算法,例如Harris角点检测器、Shi-Tomasi(又称为Good Features to Track)检测器以及Hessian矩阵检测器。这些算法能帮助我们找到图像中显著且稳定的角点。 在"02 角度探测器"项目中...

    corner-detection-prototype:检测场景中角落的原型

    Node.js提供了访问原生C/C++库的能力,如OpenCV的Node.js绑定,可以利用OpenCV的预封装角点检测算法。另外,浏览器环境中的WebAssembly可以用来运行高性能的计算密集型任务,如图像处理。 一个典型的角点检测流程...

    Harris算法源代码

    在C++和MFC环境下实现哈里斯算法,你需要包含必要的头文件,如 `&lt;opencv2/opencv.hpp&gt;`,并使用OpenCV库来处理图像和计算特征。首先,读取图像,然后进行预处理(如灰度化、高斯滤波)。接着,计算图像的梯度,构建...

    littleplanet:ORBIPrime的测试任务

    它结合了FAST角点检测器(Fast Algorithm for Corner Detection)和BRIEF(Binary Robust Independent Elementary Features)描述符。ORB的主要优势在于它的速度和鲁棒性,使其成为实时计算机视觉应用的理想选择。 ...

Global site tag (gtag.js) - Google Analytics