怎么使用opencv3/c++实现霍夫圆/直线检测

  介绍

这篇文章主要介绍怎么使用opencv3/c++实现霍夫圆/直线检测,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

<强>霍夫直线检测

参数说明:

简历::HoughLinesP (   InputArray  src,,//,输入图像(8位灰度图像)   OutputArray ,,//,输出直线两点坐标(vector

示例:

# include   # include   using  namespace 简历;      int  main ()   {   Mat 才能,src, dst;   src 才能=,imread (“E:/图片/图片/line.jpg");   如果才能(src.empty ())   {才能   ,,,printf(“还要not  load  image  \ n");   ,,,return  1;   ,,}   cvNamedWindow才能(“input",, CV_WINDOW_AUTOSIZE);   imshow才能(“input",, src);      dst 才能=,垫::0 (src.size (),, src.type ());,,   cvtColor才能(dst src CV_RGB2GRAY);   精明的才能(dst, dst, 0200);   vector<才能;Vec4i>,多义线;   HoughLinesP才能(dst,多段线,,1,,CV_PI/180,, 150,,,, 10);   的才能(size_t 小姐:=0;,i<, plines.size();,我+ +)   {才能   ,,,Vec4i  points =,多义线[我];   ,,,行(src,,点(点[0],点[1]),,点(点[2],[3]),,标量(0255255),,3,,CV_AA);   ,,},,,,   cvNamedWindow才能(“output",, CV_WINDOW_AUTOSIZE);   imshow才能(“output",, src);      waitKey才能();   return 才能;0;   }

怎么使用opencv3/c++实现霍夫圆/直线检测

怎么使用opencv3/c++实现霍夫圆/直线检测

<强>霍夫圆检测

霍夫圆检测对噪声比较敏感,一般要先对图像做中值滤波。

参数说明:

HoughCircles (   InputArray 形象,,//,输入图像,,必须是8位的单通道灰度图像   OutputArray ,,//,输出结果,即圆信息(圆心+半径)   Int 方法,,//,采用方法:HOUGH_GRADIENT   Double , dp,//, dp =, 1,,   Double  mindist,,//, 10,最短距离,可以分辨是两个圆的,否则认为是同心圆:src_gray.rows/8   Double  param1,,//,用于精明的边缘阀值上限,下限被置为上限的一半   Double  param2,,//,中心点累加器阈值   Int  minradius,,//,最小半径   Int  maxradius//最大半径,   )

示例:

# include   # include   using  namespace 简历;      int  main ()   {   Mat 才能,src, dst;   src 才能=,imread (“E:/图片/图片/line.jpg");   如果才能(src.empty ())   {才能   ,,,printf(“还要not  load  image  \ n");   ,,,return  1;   ,,}   cvNamedWindow才能(“input",, CV_WINDOW_AUTOSIZE);   imshow才能(“input",, src);   cvtColor才能(src src CV_RGB2GRAY);   时间=dst 才能;src.clone ();   cvtColor才能(dst, dst CV_GRAY2RGB);   ,,//中值滤波   medianBlur才能(src src 3);   vector<才能;Vec3f>,圈;   HoughCircles才能(src、圆CV_HOUGH_GRADIENT 1100, 45岁,30岁,45220);   ,,(size_t 小姐:=,0;,小姐:& lt;, circles.size();,我+ +)   {才能   ,,,Vec3f  c =,圈[我];   ,,,圆(dst,,点(c [0], c [1]),, c[2],标量(0255255),,3,,CV_AA);   ,,}   cvNamedWindow才能(“output",, CV_WINDOW_AUTOSIZE);   imshow才能(“output",, dst);   waitKey才能();   return 才能;0;   }

怎么使用opencv3/c++实现霍夫圆/直线检测

怎么使用opencv3/c++实现霍夫圆/直线检测

以上是“怎么使用opencv3/c++实现霍夫圆/直线检测”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

怎么使用opencv3/c++实现霍夫圆/直线检测