OpenCV图像处理中常用函数汇总(2)
1 // 霍夫线变换 hough 2 vector<Vec2f> lines;//定义一个矢量结构lines用于存放得到的线段矢量集合 3 HoughLines(dstImage,lines,1,CV_PI/180,150); 4 //依次在图中绘制出每条线段 5 for (size_t i = 0;i < lines.size();i++) 6 { 7 float rho = lines[i][0],theta = lines[i][1]; 8 Point pt1,pt2; 9 double a = cos(theta),b = sin(theta); 10 double x0 = rho*a,y0 = rho*b;//A是与直线垂直的线交点 坐标为(x0,y0)=(rho*cos(theta),rho*sin(theta)); 11 //向上取整函数cvCeil、向下取整函数cvFloor、四舍五入函数cvRound; 12 13 pt1.x = cvRound(x0+1000*(-b));//1000是取两点之间的距离,可操控量; 14 pt1.y = cvRound(y0+1000*(a));//pt1是位于A较上的一个点; 15 pt2.x = cvRound(x0-1000*(-b));//pt2是位于A较下的一个点; 16 pt2.y = cvRound(y0-1000*(a)); 17 18 line(dstImage,pt1,pt2,Scalar(55,100,195),1,CV_AA); 19 } 20 imshow("hough检测直线图",dstImage); 21 //waitKey(0);
//霍夫变换线、圆
1 //! finds lines in the black-n-white image using the standard or pyramid Hough transform 2 CV_EXPORTS_W void HoughLines( InputArray image, OutputArray lines, 3 double rho, double theta, int threshold, 4 double srn=0, double stn=0 ); 5 6 //! finds line segments in the black-n-white image using probabalistic Hough transform 7 CV_EXPORTS_W void HoughLinesP( InputArray image, OutputArray lines, 8 double rho, double theta, int threshold, 9 double minLineLength=0, double maxLineGap=0 ); 10 11 //! finds circles in the grayscale image using 2+1 gradient Hough transform 12 CV_EXPORTS_W void HoughCircles( InputArray image, OutputArray circles, 13 int method, double dp, double minDist, 14 double param1=100, double param2=100, 15 int minRadius=0, int maxRadius=0 );
//扩充边界函数
//! copies 2D array to a larger destination array with extrapolation of the outer part of src using the specified border mode CV_EXPORTS_W void copyMakeBorder( InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& value=Scalar() );
// 计算非0个数 平均数 标准差
1 //! computes the number of nonzero array elements 2 CV_EXPORTS_W int countNonZero( InputArray src ); 3 //! returns the list of locations of non-zero pixels 4 CV_EXPORTS_W void findNonZero( InputArray src, OutputArray idx ); 5 6 //! computes mean value of selected array elements 7 CV_EXPORTS_W Scalar mean(InputArray src, InputArray mask=noArray()); 8 //! computes mean value and standard deviation of all or selected array elements 9 CV_EXPORTS_W void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev, 10 InputArray mask=noArray());
1.// 变幻的大千世界, 浩瀚的知识海洋, 我只是: 一个IT的从业者, 一个知识的记录者, 一个知识的搬运工!////
2.// 文章可能是原创/转载/共享资源/混合整合作品,若有侵权,请联系我处理,谢谢!////