opencv 图片截取圆_【opencv+VS】图片中找圆

匿名用户

1级

2013-10-04 回答

#include

#include

#include

int main(int argc, char** argv)

{

IplImage* img = cvCreateImage = cvLoadImage("img.jpg");

if(img)

{

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;

}

这是未转换成yuv格式的,将输入的图像灰度化进行处理

如果想要转成yuv格式,调用cvCvtColor(img,yuv,CV_BGR2YUV);即可得到yuv格式图像,其中的y分量即为灰度图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值