opencv学习笔记霍夫变换——直线检测
2018-06-17 21:28:12来源:未知 阅读 ()
参考大佬博文:blog.csdn.net/jia20003/article/details/7724530
lps-683.iteye.com/blog/2254368
openCV里有两个函数(比较常用)处理霍夫变换直线检测,有什么区别呢。
CvHoughLine:是用于标准的霍夫变换方法
CvHoughLine2:可以使用三种霍夫变换的方法,分别是标准霍夫变换(SHT)、多尺度标准霍夫变换(MSHT)、累计概率霍夫变换(PPHT)。
函数原型:
1 #include <highgui.h> 2 #include <cv.h> 3 #include <math.h> 4 5 int main(int argc, char** argv) 6 { 7 IplImage* src; 8 src = cvLoadImage( argv[1], 0 ); //加载灰度图 9 IplImage* dst = cvCreateImage( cvGetSize( src ), IPL_DEPTH_8U, 1 ); 10 IplImage* color_dst = cvCreateImage( cvGetSize( src ), IPL_DEPTH_8U, 3 ); //创建三通道图像 11 CvMemStorage* storage = cvCreateMemStorage(0); 12 CvSeq* lines = 0; 13 cvCanny( src, dst, 50, 100, 3 ); //首先运行边缘检测,结果以灰度图显示(只有边缘) 14 cvCvtColor( dst, color_dst, CV_GRAY2BGR ); //色彩空间转换,将dst转换到另外一个色彩空间即3通道图像 15 lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 80, 30, 10 ); //直接得到直线序列 16 17 //循环直线序列 18 for( int i = 0; i < lines ->total; i++ ) //lines存储的是直线 19 { 20 CvPoint* line = ( CvPoint* )cvGetSeqElem( lines, i ); //lines序列里面存储的是像素点坐标 21 cvLine( color_dst, line[0], line[1], CV_RGB( 0, 255, 0 ) ); //将找到的直线标记为红色 22 //color_dst是三通道图像用来存直线图像 23 } 24 cvNamedWindow( "src", 1 ); 25 cvShowImage( "src", src ); 26 cvNamedWindow( "Hough", 1 ); 27 cvShowImage( "Hough", color_dst ); 28 cvWaitKey(0); 29 30 return 0; 31 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 如何0基础学习C/C++? 2020-06-06
- OpenCV开发笔记(五十九):红胖子8分钟带你深入了解分水岭 2020-05-24
- vtk学习记录(三)——初识vtkRenderer 2020-05-16
- opencv-12-高斯滤波-双边滤波(附C++代码实现) 2020-05-10
- 算法笔记刷题6 ( PAT 1003我要通过 ) 2020-05-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash