OpenCV学习笔记-霍夫线变换2
2011-08-05 21:40
423 查看
采用参数形式为:
CV_HOUGH_PROBABILISTIC进行变化。
具体实现代码为:
结果为:
参考资料:
1.学习OpenCV,于仕祺,刘瑞祯,清华大学出版,pp.175-179
2.http://www.opencv.org.cn/index.php/Cv%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86#HoughLines
3.OpenCV文档,路径:"OpenCV2.2\doc\opencv.pdf"
CV_HOUGH_PROBABILISTIC进行变化。
具体实现代码为:
#include "stdafx.h" #include <cv.h> #include <highgui.h> #include <math.h> int main(int argc, char** argv) { IplImage* src; src=cvLoadImage("building.jpg",0); IplImage* dst = cvCreateImage( cvGetSize(src), 8, 1 ); IplImage* color_dst = cvCreateImage( cvGetSize(src), 8, 3 ); CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* lines = 0; int i; cvCanny( src, dst, 50, 200, 3 ); cvCvtColor( dst, color_dst, CV_GRAY2BGR ); lines = cvHoughLines2( dst, storage, CV_HOUGH_STANDARD, 1, CV_PI/180, 150, 0, 0 ); for( i = 0; i < lines->total; i++ ) { float* line = (float*)cvGetSeqElem(lines,i); float rho = line[0]; float theta = line[1]; CvPoint pt1, pt2; double a = cos(theta), b = sin(theta); if( fabs(a) < 0.001 ) { pt1.x = pt2.x = cvRound(rho); pt1.y = 0; pt2.y = color_dst->height; } else if( fabs(b) < 0.001 ) { pt1.y = pt2.y = cvRound(rho); pt1.x = 0; pt2.x = color_dst->width; } else { pt1.x = 0; pt1.y = cvRound(rho/b); pt2.x = cvRound(rho/a); pt2.y = 0; } cvLine( color_dst, pt1, pt2, CV_RGB(255,0,0), 3, 8 ); } cvNamedWindow( "Source", 1 ); cvShowImage( "Source", src ); cvNamedWindow( "Hough", 1 ); cvShowImage( "Hough", color_dst ); cvWaitKey(0); }
结果为:
参考资料:
1.学习OpenCV,于仕祺,刘瑞祯,清华大学出版,pp.175-179
2.http://www.opencv.org.cn/index.php/Cv%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86#HoughLines
3.OpenCV文档,路径:"OpenCV2.2\doc\opencv.pdf"
相关文章推荐
- 学习【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑---笔记
- opencv中的标准霍夫线变换HoughLines()的-学习笔记
- OpenCV学习笔记-霍夫线变换1
- opencv学习笔记--霍夫线变换
- OpenCV学习笔记-霍夫圆变换
- Opencv学习---霍夫变换
- OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc
- 【opencv学习笔记4】视频流的帧图像变换
- opencv学习笔记4:图像变换
- Python OpenCV学习笔记之:hough变换检测圆形
- OpenCV学习笔记【4】:一个简单的变换
- python OpenCV学习笔记(二十七):Hough线变换
- opencv学习笔记--霍夫圆变换
- Opencv学习笔记(三):图像的使用与操作_颜色空间的变换
- Python OpenCV学习笔记之:博立叶变换
- OpenCV学习笔记9 (Hough线变换)
- opencv学习笔记(二十五)霍夫圆变换
- Opencv2系列学习笔记11(霍尔夫变换)
- Opencv学习---霍夫变换检测圆的基本原理
- OpenCV学习18--霍夫变换检测直线