机器视觉_实验2.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《机器视觉_实验2.doc》由会员分享,可在线阅读,更多相关《机器视觉_实验2.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流机器视觉_实验2【精品文档】第 9 页实验二 多边形边长测量一、实验目的1 掌握哈夫变换方法检测直线的基本原理和步骤。2 复习VB/VC/Matlab的基本概念、基本语法和编程方法,并熟练使用VB/VC/Matlab编写遗传算法程序。二、实验设备微机三、 实验原理距离测量基本步骤:1)对定位距离的两条直线进行识别和拟合。(关键步骤)2)得到直线方程后,根据数学方法计算两线间的距离。两种经典的直线拟合(检测)算法:最小二乘法、哈夫(霍夫)变换法直线函数:y=ax+b,a、b是待定常数。Hough变换Hough,1962是一种利用图像全局特征将特定形状的边缘
2、连接起来,形成连续平滑边缘的一种方法。 它通过将源图像上的点映射到用于累加的参数空间,实现对已知解析式曲线的识别。 由于Hough变换利用了图像全局特性,所以受噪声和边界间断的影响较小,比较鲁棒(Robust)。 Hough变换常用来对图像中的直线和圆进行识别。点-线对偶性:图像空间XY中共线的点,对应在参数空间PQ中相交的线。参数空间PQ中相交于一点的所有直线,在图像空间XY里都有共线的点与之对应。结论:在PQ平面上相交直线最多的点,对应在XY平面上的直线就是解。假设:1)图像上的直线是一个容器;2)直线上的点(图像中的特定像素)是放在容器中的棋子。由于图像上任一像素可以同时属于多根直线,即
3、可看成每个棋子(像素)可以同时放在多个容器中(直线)。Hough变换的基本思想:依次检查图像上的每个棋子(特定像素)。对每个棋子,找到所有包含它的容器(直线),并为每个容器的计数器加1。遍历结束后,统计每个容器所包含的棋子数量。当图像上某个直线包含的特定像素足够多时,就可以认为直线存在。具体步骤:将rq空间量化,得到二维矩阵Mrq;根据极坐标表示法,r是直线到原点的距离。设图像的对角线长度为n,固定左上角为原点,则r的取值范围为0, n。令q以1度为增量,则q的取值范围为0, 359。此时,M是一个n行360列的二维矩阵。矩阵中任一元素Mrq所存储的值就是图像中由参数(r,q)决定的直线上所拥
4、有的像素数。初始化时,矩阵M置为0。遍历图像,对像素(xi, yi) ,将q的所有量化值和像素坐标(xi, yi),依次代入直线的极坐标方程,计算r的值,根据当前r、q,将对应的累加器加1,即:Mrq=Mrq+1。分析Mrq,如果MrqT,就认为存在一条有意义的线段,(r,q)是该线段的拟合参数。T是一个非负整数,由图像中景物的先验知识决定,与图像大小有关。由(r,q)和(xi, yi)共同确定图像中的线段,并连接断裂部分。四、预习要求1 查阅资料,理解并掌握哈夫变换方法检测直线的基本原理与步骤。2 复习VB/VC/Matlab的基本概念、基本语法和编程方法。五、实验内容及步骤1 上机编写程序
5、,以“六边形.bmp”为实验对象,利用哈夫变换方法检测出六边形各边边长。程序代码:#include stdafx.h#include opencv2/highgui/highgui.hpp#include opencv2/imgproc/imgproc.hpp#include #include using namespace cv;using namespace std;Mat src, edges;Mat src_gray;Mat standard_hough, probabilistic_hough;/标准霍夫变换,概率的霍夫变换int min_threshold = 10;/最小阈值为1
6、0int max_trackbar = 200;/最大的跟踪条为200char*standard_name = Standard Hough Lines Demo;char*probabilistic_name = Probabilistic Hough Lines Demo;int s_trackbar = max_trackbar;int p_trackbar = max_trackbar;void help();void Standard_Hough(int, void*);void Probabilistic_Hough(int, void*);int main()src = imre
7、ad(六边形.bmp, 1);if (src.empty()help();return -1;cvtColor(src, src_gray, CV_RGB2GRAY);Canny(src_gray, edges, 50, 200, 3);namedWindow(standard_name, CV_WINDOW_AUTOSIZE);createTrackbar(Thresh, standard_name, &s_trackbar, max_trackbar, Standard_Hough);namedWindow(probabilistic_name, CV_WINDOW_AUTOSIZE);c
8、reateTrackbar(Thresh, probabilistic_name, &p_trackbar, max_trackbar, Probabilistic_Hough);/初始化Standard_Hough(0, 0);Probabilistic_Hough(0, 0);waitKey(0);return 0;void help()printf(t Hough Transform to detect lines n);printf(t-n);printf(Usage:./HoughLines_Demon);void Standard_Hough(int, void*)vectors_
9、lines;cvtColor(edges, standard_hough, CV_GRAY2BGR);/用标准霍夫变换HoughLines(edges, s_lines, 1, CV_PI / 180, min_threshold + s_trackbar, 0, 0);/显示结果for (int i = 0; i s_lines.size(); i+)float r = s_linesi0, t = s_linesi1;double cos_t = cos(t), sin_t = sin(t);double x0 = r*cos_t, y0 = r*sin_t;double alpha =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器 视觉 实验
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内