ios--OpenCV--检测直线、圆、矩形
来源:互联网 发布:淘宝不能使用图片搜索 编辑:程序博客网 时间:2024/05/05 22:37
直线检测:
IplImage * src_Img= srcIpl1; IplImage * edge_Img=NULL; edge_Img=cvCreateImage(cvGetSize(src_Img),IPL_DEPTH_8U,1); IplImage *temp_Img=cvCreateImage(cvGetSize(src_Img),IPL_DEPTH_8U,1); cvCvtColor(src_Img,temp_Img,CV_BGR2GRAY); cvCanny(temp_Img,edge_Img,25,50);//threshold1和threshold2 当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。 //hough变化直线检测 CvMemStorage *storage=cvCreateMemStorage(0);//内存采用默认大小 CvSeq * lines=0; lines=cvHoughLines2(edge_Img,storage,CV_HOUGH_STANDARD,1,CV_PI/180,150); for (int i=0;i<MIN(lines->total,100);i++) { float *line=(float *)cvGetSeqElem(lines,i); float rho =line[0]; float theta=line[1]; //cout<<"rho:"<<rho<<",theta:"<<theta<<endl;//注意坐标系采用图像坐标系,坐标原点在左上角 CvPoint pt1,pt2; double a=cos(theta),b=sin(theta); double x0=a*rho,y0=b*rho; pt1.x=cvRound(x0 + 500*(-b)); pt1.y=cvRound(y0 + 500*(a)); pt2.x=cvRound(x0 - 500*(-b)); pt2.y=cvRound(y0 - 500*(a)); cvLine(src_Img,pt1,pt2,CV_RGB(255,0,0),1,CV_AA,0); //cout<<x0<<","<<y0<<endl;//如果点不在图像内,那么选在这条直线上离这个点最近的点开始画 }
圆检测:
IplImage * src_Img= srcIpl1; IplImage * edge_Img=NULL; edge_Img=cvCreateImage(cvGetSize(src_Img),IPL_DEPTH_8U,1); IplImage *temp_Img=cvCreateImage(cvGetSize(src_Img),IPL_DEPTH_8U,1); cvCvtColor(src_Img,temp_Img,CV_BGR2GRAY); CvMemStorage *storage=cvCreateMemStorage(0);//内存采用默认大小 CvSeq* circles = cvHoughCircles( temp_Img, storage, CV_HOUGH_GRADIENT, 2, temp_Img->height/4, 80, 40 ); for(int i = 0; i < circles->total; i++ ) { float* p = (float*)cvGetSeqElem( circles, i); cvCircle( src_Img, cvPoint(cvRound(p[0]),cvRound(p[1])), 3, CV_RGB(0,255,0), -1, 8, 0 ); cvCircle( src_Img, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(255,0,0), 3, 8, 0 ); }
画矩形框:
cvRectangle(srcResult, mincvPoint, maxcvPoint, cvScalar(0,0,255));//srcResult表示目标图片//mincvPoint表示矩形左上角的点cvPoint//maxcvPoint表示矩形右下角的点cvPoint//cvScalar(0,0,255)表示用红色描线
0 0
- ios--OpenCV--检测直线、圆、矩形
- opencv 检测直线、圆、矩形
- opencv 检测直线、圆、矩形
- OpenCV--- 检测直线、圆、矩形
- opencv --检测直线、圆、矩形
- opencv检测直线,圆,矩形
- 【OpenCV】opencv 检测直线、圆、矩形
- opencv 检测直线、线段、圆、矩形
- opencv 检测直线、线段、圆、矩形
- opencv 检测直线、线段、圆、矩形
- opencv 检测直线、圆、矩形
- opencv画直线圆椭圆矩形
- opencv各种画图 直线 矩形 圆 椭圆
- opencv 检测直线
- OpenCV检测直线
- Opencv 轮廓检测 直线
- OpenCV 直线检测
- opencv笔记:检测轮廓,直线,圆以及直线拟合
- 直接插入排序以及java实现
- spring dao框架——参数命名JDBCTemple
- 很高兴来到这里
- 心
- Spring 读取属性文件的便捷方式
- ios--OpenCV--检测直线、圆、矩形
- android 登陆右上角 的关闭按钮的使用方法
- 大小关系
- Cocos2dx3.0 疑难解答系列 (一) 代码里对Layer监听失效,此Layer层中有儿子layout加载了从cocostudio导出的ui层。
- 使用Xcode 5创建自己的Framework
- Tsar开源:淘宝内部大量使用的系统监控工具
- Page_Load Page_Init方法使用原理 Page 添加 事件
- Spring dao框架——jdbc模板批量操作
- 1/50 《Programming in Objective-C》