多边形边长测量

实验二 多边形边长测量

一、实验目的

1. 掌握哈夫变换方法检测直线的基本原理和步骤。

2. 复习VB/VC/Matlab的基本概念、基本语法和编程方法,并熟练使用VB/VC/Matlab编写遗传算法程序。

二、实验设备

微机

三、实验原理

在原始图像坐标系下的一个点对应了参数坐标系中的一条直线,同样参数坐标系的一条直线对应了原始坐标系下的一个点,然后,原始坐标系下呈现直线的所有点,它们的斜率和截距是相同的,所以它们在参数坐标系下对应于同一个点。这样在将原始坐标系下的各个点投影到参数坐标系下之后,看参数坐标系下有没有聚集点,这样的聚集点就对应了原始坐标系下的直线

四、预习要求

1. 查阅资料,理解并掌握哈夫变换方法检测直线的基本原理与步骤。

2. 复习VB/VC/Matlab的基本概念、基本语法和编程方法。

五、实验内容及步骤

1. 上机编写程序,以“六边形.bmp ”为实验对象,利用哈夫变换方法检测出六边形各边边长。

2. 利用实验一的Harris 角点检测程序,检测“六边形.bmp ”中六边形的各边边长。

3. 调试程序。

4. 根据实验结果,撰写实验报告。

六、实验程序

clc,

close

BW=imread('liu.bmp' );

thresh=[0.01,0.17];

sigma=2;%¶¨Òå¸ß˹²ÎÊý

f = edge(double(BW),'canny' ,thresh,sigma);

figure,imshow(f,[]);

[H, theta, rho]= hough(f,'RhoResolution' ,0.5);

peak=houghpeaks(H,6);

hold on

lines=houghlines(f,theta,rho,peak);

figure,imshow(f,[])

hold on

for k=1:length(lines)

xy=[lines(k).point1;lines(k).point2]; plot(xy(:,1),xy(:,2),'LineWidth' ,2, 'Color' , 'green' ); % ±ê³öÏ߶εÄÆðʼºÍÖն˵ã plot(xy(1,1),xy(1,2),'x' , 'LineWidth' ,2, 'Color' , 'yellow' ); plot(xy(2,1),xy(2,2),'x' , 'LineWidth' ,2, 'Color' , 'yellow' );

text((xy(1,1)+xy(2,1))/2,(xy(1,2)+xy(2,2))/2,num2str(sqrt((xy(1,1)-xy(2,1))^2+(xy(1,2)-xy(2,2))^2)),'Color' ,[1,0,0]);%Ëã³öÏ߶γ¤¶È end


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn