opencv实验报告.doc

上传人:文库蛋蛋多 文档编号:2392444 上传时间:2023-02-17 格式:DOC 页数:6 大小:131KB
返回 下载 相关 举报
opencv实验报告.doc_第1页
第1页 / 共6页
opencv实验报告.doc_第2页
第2页 / 共6页
opencv实验报告.doc_第3页
第3页 / 共6页
opencv实验报告.doc_第4页
第4页 / 共6页
opencv实验报告.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《opencv实验报告.doc》由会员分享,可在线阅读,更多相关《opencv实验报告.doc(6页珍藏版)》请在三一办公上搜索。

1、OPENCV图像处理实验报告院(系) : 理学院 专 业 : 信息与计算科学 指导老师 : 刘建伟 班 级 : 101001班 姓 名 : 龙云祥 时 间 : 2013年9月26日 霍夫线变换一、 实验名称:霍夫线变换二、 实验目的:1. 进一步学习opencv的一些基本操作2. 通过学习霍夫线变换,使用OpenCV的以下函数 HoughLines 和 HoughLinesP 来检测图像中的直线.三、 实验原理:1.霍夫线变换是一种用来寻找直线的方法2.是用霍夫线变换之前, 首先要对图像进行边缘检测的处理,也即霍夫线变换的直接输入只能是边缘二值图像.OpenCV实现了以下两种霍夫线变换:1.标

2、准霍夫线变换原理在上面的部分已经说明了. 它能给我们提供一组参数对 (,r) 的集合来表示检测到的直线在OpenCV 中通过函数 HoughLines 来实现2.统计概率霍夫线变换这是执行起来效率更高的霍夫线变换. 它输出检测到的直线的端点(x0,y0,x1,y1)在OpenCV 中它通过函数 HoughLinesP 来实现.众所周知, 一条直线在图像二维空间可由两个变量表示. 例如:对于霍夫变换, 我们将用极坐标系来表示直线. 因此, 直线的表达式可为:化简得:四、 实验运行环境:Windows2007操作系统,VisualStudio2012五、 实验源代码:#include stdafx

3、.h#include opencv2/highgui/highgui.hpp#include opencv2/imgproc/imgproc.hpp#include using namespace cv;using namespace std;void help() cout nThis program demonstrates line finding with the Hough transform.n Usage:n ./houghlines , Default is pic1.jpgn = 2 ? argv1 : D:SDK1234.jpg; Mat src = imread(file

4、name, 0); if(src.empty() help(); cout can not open filename endl; return -1; Mat dst, cdst; Canny(src, dst, 50, 200, 3); cvtColor(dst, cdst, CV_GRAY2BGR); #if 0 vector lines; HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0 ); for( size_t i = 0; i lines.size(); i+ ) float rho = linesi0, theta = linesi

5、1; Point pt1, pt2; double a = cos(theta), b = sin(theta); double x0 = a*rho, y0 = b*rho; pt1.x = cvRound(x0 + 1000*(-b); pt1.y = cvRound(y0 + 1000*(a); pt2.x = cvRound(x0 - 1000*(-b);pt2.y = cvRound(y0 - 1000*(a);line( cdst, pt1, pt2, Scalar(0,0,255), 3, CV_AA); #else vector lines; HoughLinesP(dst,

6、lines, 1, CV_PI/180, 50, 50, 10 ); for( size_t i = 0; i lines.size(); i+ ) Vec4i l = linesi; line( cdst, Point(l0, l1), Point(l2, l3), Scalar(0,0,255), 3, CV_AA); #endif imshow(source, src); imshow(detected lines, cdst); waitKey(); return 0;六、实验结果:图表 1原图图表 2 变换后的图六、 实验总结:通过本次实验,我再次熟悉opencv和Visual Studio2012的环境配置,通过这几次对opencv的学习,能操作一些基本的图像显示,及其基本的图像处理,但仍有较多编程的知识学习,特别是这次霍夫线变换的算法不太理解,代码都是通过查阅资料得到,我应该加强对算法的理解,再进行编码,只有这样才能提高自己。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号