OpenCV函数cvHoughCircles根据Hough变换检测圆

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
#include<cv.h>#include<highgui.h>int main(){ IplImage* src = NULL; IplImage* dst = NULL; IplImage* color = NULL; src = cvLoadImage ("circle.jpg", 1); dst = cvCreateImage (cvGetSize(src), IPL_DEPTH_8U, 1); if (src->nChannels == 1) {  dst = cvCloneImage (src); } else {  cvCvtColor (src, dst, CV_RGB2GRAY); } CvMemStorage* storage = cvCreateMemStorage (0); cvSmooth (dst, dst, CV_GAUSSIAN, 5, 5);  CvSeq* circles = cvHoughCircles (dst, storage, CV_HOUGH_GRADIENT, 2, dst->width / 3, 300, 100, 0, 200); color = cvCreateImage (cvGetSize(src), IPL_DEPTH_8U, 3); cvCvtColor (dst, color, CV_GRAY2RGB); for (int i = 0; i < circles->total; i++) {  float* p = (float*)cvGetSeqElem (circles, i);  CvPoint pt = cvPoint (cvRound(p[0]), cvRound(p[1]));  cvCircle (color, pt, cvRound(p[2]), CV_RGB(255, 0, 0), 3, 8, 0); } cvNamedWindow ("src", 1); cvShowImage ("src", src); cvNamedWindow ("circle", 1); cvShowImage ("circle", color); cvWaitKey (0); cvReleaseMemStorage (&storage); cvReleaseImage (&src); cvReleaseImage (&dst); cvReleaseImage (&color); return 0;}

这是我的源代码,这个我测试了很久,调cvHoughCircles的参数也调了很久,但始终没有调到理想的结果,下面是我

调试中相对来说效果好点的结果:


           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值