开发者社区> gnuhpc> 正文

【OpenCV学习】角点检测

简介: 作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ #include #include "cv.h" #include "highgui.h" #define MAX_CORNERS 100 int main(void) { int...
+关注继续查看

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

#include <stdio.h>
#include "cv.h"
#include "highgui.h"

#define MAX_CORNERS 100

int main(void)
{
int cornersCount=MAX_CORNERS;//得到的角点数目
CvPoint2D32f corners[MAX_CORNERS];//输出角点集合
IplImage *srcImage = 0,*grayImage = 0,*corners1 = 0,*corners2 = 0;
int i;
CvScalar color = CV_RGB(255,0,0);
char *filename = "pic3.png";
cvNamedWindow("image",1);

//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 os same size as the copied images
//两幅临时32位浮点图像,cvGoodFeaturesToTrack会用到
corners1 = cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_32F,1);
corners2 = cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_32F,1);

cvGoodFeaturesToTrack(grayImage,corners1,
corners2,corners,
&cornersCount,0.05,
30,//角点的最小距离是30
0,//整个图像
3,0,0.4);
//默认值
printf("num corners found: %d/n",cornersCount);

//开始画出每个点
if (cornersCount>0)
{
for (i=0;i<cornersCount;i++)
{
cvCircle(srcImage,cvPoint((int)(corners[i].x),(int)(corners[i].y)),
2,color,2,CV_AA,0);
}
}

cvShowImage("image",srcImage);
cvSaveImage("imagedst.png",srcImage);

cvReleaseImage(&srcImage);
cvReleaseImage(&grayImage);
cvReleaseImage(&corners1);
cvReleaseImage(&corners2);

cvWaitKey(0);
return 0;
} 

imagedst

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/


               作者:gnuhpc
               出处:http://www.cnblogs.com/gnuhpc/
               除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【OpenCV学习】step的应用
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ #pragma comment(lib,"cxcore.lib") #include"cv.h" #include int main() { //矩阵元素为三通道8位浮点数 CvM...
547 0
从高频笔/面试题思考Android学习/进阶路线(Java篇)
写在前面 标题谈进阶,属实有一些夸大。 我一直在思考什么样的文章才是一篇好文章,我的定义是首先要有人看,其次重要的是内部有价值。所以针对于这个出发点,我决定从大家比较关注的面试题入手,然后尝试从中分析对Android进阶路线的帮助。
1753 0
【OpenCV学习】cvConvert的使用
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ OpenCV可用以下函数显示一个CvArr类数据mat cvNamedWindow("WinName",CV_WINDOW_AUTOSIZE); cvShowImage("WinName",mat); cvWaitKey(0); 但往往仅当mat为IIplmage*类型,且其depth为IPL_DEPTH_8U(8bit无符号整形)时,有较好的显示效果 对于其他深度的IplImage*或者CvMat*类数据,可以使用CvConvert函数进行转换,而后显示。
947 0
【OpenCV学习】形态学梯度
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/   #include #include #include using namespace std; int main( int argc, char **argv) { IplImage *imgA = cvLoadImage( "lena.
472 0
【OpenCV学习】OpenMP并行化实例
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ #include "cv.h" #include "highgui.h" #include #include #include void EdgeOpenMP(IplImage *s...
767 0
学习hadoop需要什么基础
“学习hadoop需要什么基础”这已经不是一个新鲜的话题了,随便上网搜索一下就能找出成百上千篇的文章在讲学习hadoop需要掌握的基础。再直接的一点的问题就是——学Hadoop难吗?用一句特别让人无语的话回答就是:难不会,会不难!
1661 0
+关注
406
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载