OpenCV笔记12:霍夫变换检测圆
2013-04-14 10:23
387 查看
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
#include <math.h>
int main(int argc, char** argv)
{
IplImage* img;
if( argc == 2 && (img=cvLoadImage(argv[1], 1))!= 0)
{
IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 );
CvMemStorage* storage = cvCreateMemStorage(0);
cvCvtColor( img, gray, CV_BGR2GRAY );
cvSmooth( gray, gray, CV_GAUSSIAN, 9, 9 ); // smooth it, otherwise a lot of false circles may be detected
CvSeq* circles = cvHoughCircles( gray, storage, CV_HOUGH_GRADIENT, 2, gray->height/4, 200, 100 );
int i;
for( i = 0; i < circles->total; i++ )
{
float* p = (float*)cvGetSeqElem( circles, i );
cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), 3, CV_RGB(0,255,0), -1, 8, 0 );
cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(255,0,0), 3, 8, 0 );
}
cvNamedWindow( "circles", 1 );
cvShowImage( "circles", img );
cvWaitKey(0);
}
return 0;
}
#include <cv.h>
#include <highgui.h>
#include <math.h>
int main(int argc, char** argv)
{
IplImage* img;
if( argc == 2 && (img=cvLoadImage(argv[1], 1))!= 0)
{
IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 );
CvMemStorage* storage = cvCreateMemStorage(0);
cvCvtColor( img, gray, CV_BGR2GRAY );
cvSmooth( gray, gray, CV_GAUSSIAN, 9, 9 ); // smooth it, otherwise a lot of false circles may be detected
CvSeq* circles = cvHoughCircles( gray, storage, CV_HOUGH_GRADIENT, 2, gray->height/4, 200, 100 );
int i;
for( i = 0; i < circles->total; i++ )
{
float* p = (float*)cvGetSeqElem( circles, i );
cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), 3, CV_RGB(0,255,0), -1, 8, 0 );
cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(255,0,0), 3, 8, 0 );
}
cvNamedWindow( "circles", 1 );
cvShowImage( "circles", img );
cvWaitKey(0);
}
return 0;
}
相关文章推荐
- Opencv学习笔记-----霍夫变换直线检测及原理理解
- OpenCV笔记11:霍夫变换检测直线
- Opencv2系列学习笔记12(检测fast特征)
- OpenCV2编程手册笔记之 7.3使用霍夫变换检测直线
- 【OpenCV笔记 12】OpenCV边缘检测之canny算子
- Opencv2系列学习笔记12(检测fast特征)
- OpenCV-Python教程(9、使用霍夫变换检测直线)
- [opencv]中霍夫变换检测直线中pt1、pt2点的确定
- opencv笔记(一):边缘检测的4种算子
- OpenCV2编程手册笔记之 8.3检测FAST特征
- Python下opencv使用笔记(七)(图像梯度与边缘检测)
- Opencv学习笔记------Harris角点检测
- Opencv学习笔记(三)形态学之检测corners
- 基础学习笔记之opencv(12):改变图像对比度和亮度
- OPencv笔记2:光流法检测——特征点
- openCV学习笔记(二)------图像平滑处理和边缘检测
- OpenCV自学笔记7:人脸检测 之 静态图像中的人脸检测
- 【OpenCV笔记 16-2】OpenCV人脸检测和人眼检测之LBP分类器
- Opencv学习笔记(二十三) 改进边缘检测算子-----Marr-Hildresh
- (openCV)Canny算子加霍夫变换检测直线