Verybot之OpenCV应用二:霍夫变换查找圆
来源:互联网 发布:丰田世纪 知乎 编辑:程序博客网 时间:2024/05/16 15:57
其实我是想通过这个程序来测试一下,OpenCV在Verybot上跑得怎么样,霍夫变换的原理就不多说了,下面是程序:
#include "cv.h"#include "highgui.h"#include "stdio.h"int main(int argc, char** argv){ cvNamedWindow("vedio",0); CvCapture* capture; if(1 == argc) { capture = cvCreateCameraCapture(0); } else { capture = cvCreateCameraCapture(atoi(argv[1])); } assert(NULL != capture);cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 320);cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT,240); IplImage* frame;char keyCode;frame = cvQueryFrame(capture); if(!frame) { return 0; } IplImage* gray = cvCreateImage( cvGetSize(frame), 8, 1 ); //创建一个Image用来存灰度的图像CvMemStorage* storage = cvCreateMemStorage(0); while((keyCode = cvWaitKey(15))) { if(keyCode == 'q'){break;} frame = cvQueryFrame(capture); if(!frame) { break; } cvCvtColor( frame, gray, CV_BGR2GRAY ); CvSeq* circles = cvHoughCircles( gray, storage, CV_HOUGH_GRADIENT, 2, gray->height/4,200,200,20 ); //霍夫变换查找圆int i=0;for( i = 0; i < circles->total; i++ ) //将找到的圆标识出来 { float* p = (float*)cvGetSeqElem( circles, i ); cvCircle( frame, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(255,0,0),3); printf("%d ,%d ,%d\n",cvRound(p[0]),cvRound(p[1]),cvRound(p[2])); } cvShowImage("vedio",frame); } cvReleaseImage(&frame); cvDestroyAllWindows(); return 0;}
程序比较简单,cvHoughCircles就是查找圆所使用的函数,后面的这几个参数比较重要,需要根据实际情况进行调整,调整不好的话,会误检测出圆来。
测试的效果感觉还是不错的,下面是一个检测的录像:
http://v.youku.com/v_show/id_XNjYxNjkzNDMy.html
0 0
- Verybot之OpenCV应用二:霍夫变换查找圆
- Verybot之OpenCV应用一:安装与图像采集测试
- Verybot之OpenCV应用三:色标跟踪
- 【OpenCV学习笔记】二十、霍夫变换及应用
- OpenCV之霍夫变换
- OpenCV之霍夫变换
- opencv之霍夫变换
- opencv(17)---霍夫变换以及应用
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- OpenCV之十四 OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- windows7X64环境下wamp开启PHP_Curl组件
- 配置qt + wince + vs2005环境
- IOS开发 --- IOS 第一个程序
- 树状数组求逆序数
- setsockopt中参数之SO_REUSEADDR的意义(转)
- Verybot之OpenCV应用二:霍夫变换查找圆
- CSS之Position详解
- 开发者必备的10类工具
- POJ 3067 树状数组求逆序数
- hdu2004解题报告
- 3种方法求解斐波那契数列
- STM32定时器的小问题总结
- 软件测试方法大汇总
- 去掉大厅上面广告模块