hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文

《边缘检测与Hough变换实验报告 Matlab - 图文》由会员分享,可在线阅读,更多相关《边缘检测与Hough变换实验报告 Matlab - 图文(5页珍藏版)》请在人人文库网上搜索。

1、边缘检测与Hough变换实验报告 Matlab - 图文边缘检测与Hough变换 实验目的:写一段代码实现一幅图像,其中分为以下两个步骤 1. 使用Matlab中的canny算子进行边缘检测,可以让使用者交互式的输入不同的Sigma的值实现边缘检测。 2. 运用Hough变换来找到最突出的边缘,在图像中找到并画出最长的直线。 实验原理: canny算子边缘检测的基本原理是:采用二维高斯函数的任一方向上的一阶方向导数为噪声滤波器,通过与图像f(x,y)卷积进行滤波,然后对滤波后的图像寻找图像梯度的局部极大值,以确定图像边缘。 Canny边缘检测算子是一种最优边缘检测算子。其实现步骤如下: 1) 。

2、用高斯滤波器平滑图像 2) 计算滤波后图像梯度的幅值和方向 3) 对梯度幅值应用非极大值抑制,其过程为找出图像梯度中的局部极大值点,把其他非局部极大值置零,以得到细化的边缘; 4) 再用双阈值算法检测和连接边缘; 使用canny算子的edge函数调用格式为 BW=edge(I,canny); BW=edge(I,canny,thresh,sigma); BW=edge(I,canny,thresh); BW,threshold=edge(I,canny,?); 2.Hough变换时最常用的直线提取方法,它的基本思想是:将直线上每一个数据点变换为参数平面中的一条直线或曲线,利用共线的数据点对应的。

3、参数曲线相交于参数空间中一点的关系,使得直线提取问题转化为计数问题。Hough变换提取直线的主要优点是受直线中的间隙和噪声影响较小。 Hough检测直线的Matlab实现:在Matlab图像处理工具箱中提供了3个与Hough变换有关的函数,分别为hough函数,houghpeaks函数和houghlines函数。 hough函数的调用格式为H,theta,rho=hough(BW);其中BW为二值图像,H为Hough变换矩阵,theta为变换轴间隔,rho为元素个数。 Houghpeaks函数是用来提取Hough变换后参数平面上的峰值点。其调用格式为peaks=houghpeaks(H,num。

4、peaks),其中,H为Hough函数的输出,参数平面的技术结果矩阵,参数numpeaks为指定要提取的峰值数目,默认值为1;输出参数peaks为Q*2维峰值位置矩阵,其中Q为提取的峰值数目,peaks的第q行分别存储第q个峰值的行和列坐标。 Hough函数用于在图像中提取参数平面上的峰值点对应的直线。其调用格式为lines=houghlines(BW,theta,rho,peaks) Lines=houghlines(?,param1,val1,param2,val2) 其中,BW与Hough函数的BW相同,为二值图象。theta和rho为hough函数返回的输出,指示轴和轴各个单元对应的值。

5、。Peaks为houghpeaks函数返回的输出,指示峰值的行和列坐标,houghlines函数将根据这些峰值提取直线。Param和val是参数对,用于指定是否合并或保留直线段的相关参数,其取值有两种。当param=MinLength时,bal指定合并后的直线被保留的门限长度,长度小于val的直线被舍去。当param=FillGap时,val指定直线段被合并的门限间隔。如果两条斜率和截距均相同的直线段间隔小于val给点的值,则它们被合并为一条直线。 实验程序与实验结果如下: nny算子边缘检测 clear all; I1=imread(F:robotImagessniper.jpg); I=r。

6、gb2gray(I1);% 彩色图像灰度化 imshow(I1); title(原始图像); BW1= edge(I,Canny,0.4,0.5) ; ge调用Canny为检测算子判别阈值为0.5 figure,imshow(BW1); title( 阈值为0.4,sigma值为0.5的Canny算子边缘检测图像 ); BW2= edge(I,Canny,0.4,0.8) ; ge调用Canny为检测算子判别阈值为0.8 figure,imshow(BW2); title( 阈值为0.4,sigma值为0.8的Canny算子边缘检测图像); BW20= edge(I,Canny,0.4,1) 。

7、; ge调用Canny为检测算子判别阈值为1 figure,imshow(BW20); title( 阈值为0.4,sigma值为1的Canny算子边缘检测图像); BW21= edge(I,Canny,0.4,1.5) ; ge调用Canny为检测算子判别阈值为1.5 figure,imshow(BW21); title( 阈值为0.4,sigma值为1.5的Canny算子边缘检测图像 ); BW22= edge(I,Canny,0.4,2) ; ge调用Canny为检测算子判别阈值为2 figure,imshow(BW22); title( 阈值为0.4,sigma值为2的Canny算子边。

8、缘检测图像 ); %Hough变换检测直线程序 rotI=I; BW=edge(rotI,canny,0.4,1.5); %用canny算子提取图像边缘 H,T,R=hough(BW); %对图像进行Hough变换 figure; imshow(H, ,XData,T,YData,R,. InitialMagnification,fit); title(峰值提取效果); xlabel(theta),ylabel(rho); axis on,axis normal,hold on; %寻找参数平面上的极值点 P =houghpeaks(H,5,threshold,ceil(0.3*max(H(:。

9、); x=T(P(:,2);y=R(P(:,1); plot(x,y,s,color,white); %找出对应的直线边缘 lines=houghlines(BW,T,R,P,FillGap,58,MinLength,5); figure,imshow(BW), title(直线标记结果); hold on max_len=0; 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,red); %计算直线边缘长度 len=norm(lines(k).point1-lines(k).point2); if(lenmax_len) max_len=len; xy_long=xy; end end plot(xy_long(:,1),xy_long(:,2),LineWidth,2,Color,r); 程序结果:。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python玫瑰花数量的含义_玫瑰花数量代表含义

个人收集整理-ZQ1 / 3支玫瑰一心一意,一见钟情.约会求婚赠花朵你是我地唯一朵玫瑰代表我地心中只有你支玫瑰成双成对,喜结良缘.夫妻,恋人互增朵你浓我浓,世界只有你和我支玫瑰我爱你赠爱人,朋友朵玫瑰代表我爱你支玫瑰四季平安赠友人,居家朵誓言、承诺朵玫瑰代表至死…

php获取视频第一帧生成gif,thinkphp如何从gif提取第一帧生成静态缩略图

在开发app项目中,为了节省以及加快客户端的加载速度,在展示gif的位置需要提供静态图加载,点击放大才加载实际的动态图片。那么在thinkphp中如何使用GD库去截取gif第一帧生成静态缩略图,具体看下面实现的方式。1、修改文件/ThinkPH…

cassss服务未启动_电梯启动死机故障处理方法

电梯情况描述:广东奥的斯,有机房 梯龄5年故障现象描述:现场人员反馈,停梯一晚,第二天开梯,门一开就死机,显示HAD,断电复位后电梯正常维修过程描述:1、到达现场查看历史故…

php 位 逻辑,php – 在Laravel中放置菜单逻辑的位置?

Note: this answer was written for Laravel 3 and might or might not work with the most recent Laravel 4我最喜欢的创建动态菜单的方法是通过将菜单部分与主布局分开并通过Laravel’s Composer注入菜单数据来实现的(不要将它与Composer PHP包管理器混淆,它们是不同的)Titl…

python子进程的输出不可见_python-输出子进程调用的命令行?

美观且可扩展的方法我一直在使用这样的东西:#!/usr/bin/env python3import osimport shleximport subprocessimport sysdef run_cmd(cmd, cwdNone, extra_envNone, extra_pathsNone, dry_runFalse):if extra_env is None:extra_env {}newline_separator \\\nout …

双色球python十种算法_python : 蒙特卡罗算法 应用于双色球

参考书:算法设计与分析 王晓东 编著 :第7章 概率算法 7.5 蒙特卡罗算法http://www.gdfc.org.cn/datas/history/twocolorball/history_1.html 抓取双色球开奖数据2017001,09,11,14,20,25,26,152017002,15,19,23,24,25,32,032017003,01,04,08,15,27,32,16.…

红包指定分配金额php,php仿微信红包分配算法的实现方法_PHP

本文实例讲述了php仿微信红包分配算法的实现方法。分享给大家供大家参考,具体如下:/*** 红包分配:把一定金额随机分配给指定人数** param int $money 用于分配的金额* param int $num 分配人数*/function RandomMoney($money, $num) {echo &q…

python 大学教授整理_剑桥大学教授用时35天亲自整理,Python超详细的基础笔记

python简介python是一种面向对象的解释型计算机程序设计语言,python的是吉多范罗苏姆(Guido van Rossum)于1989年发明任何语言都有优缺点,python也不例外,python的优点是简单易懂、可移植性、可扩展性、可嵌入性,python的缺点&…

php 分析css,全面分析css属性选择器

1.[class~"flower"]:选中有flower的classclass"flower ss"class"ss flower"2.[class|top]:选择以top为top开头的class需要有—相连 或者单独的topclass"top-ss"class"top"class"top-ss"//选…

合振动的初相位推导_基于振动信号的机械设备故障诊断(一)

1.概述振动在旋转机械设备故障中占了很大比重,是影响设备安全,稳定运行的重要因素。振动直接反应了设备的健康状况,是设备安全评估的重要指标。通过对振动分析方法的调查,熟悉一般的振动分析流程及方法,从而对检测设备…

不安装oracle 连接数据库,不安装oracle 连接服务器oracle数据库方法

1:http://eduunix.ccut.edu.cn/index2/database/Oracle%20Instant%20Client/ 下载你需要的Oracle Instant Client、免安装 Oracle 客户端使用 PL/SQL 连接 Oracle 大家都知道,用 PL/SQL 连接 Oracle ,是需要安装 Oracle 客户端软件的。有没…

python找出10000以内的质数_【Python学习】打印10000以内的所有素数

摘要: 普及一下素数,初中学的都忘记了 百度:质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。 基本判断思路:在一般领域,对正…

linux 启动db2 服务器,Linux系统设置DB2等服务开机启动的过程

Linux系统中向要设置开机启动,就要通过代码来实现。通过编写脚本能够把服务加到Linux开机启动项中,本文就来介绍一下Linux系统中设置DB2等服务开机启动的过程。1.转到/etc/init.d 目录下。以root身份执行Shell代码cd /etc/init.d2.编写DB2启动脚本Shell代…

spring elasticsearch 按条件删除_SpringBoot2 高级案例(08):整合 ElasticSearch框架,实现高性能搜索引擎...

一、安装和简介ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。ElasticSe…

linux创建vnc服务器,五步建立一个VNC Linux服务器

【51CTO快译】VNC(Virtual Network Computing)可以让你登录进到远程服务器的桌面上(相比之下,SSH的X11只能让你在本地机器上打开几个窗口)。这个很有用,设置起来也十分方便。***步我是用的是vnc4(还有其他选项,比如TightVNC),所以…

python的六大数据类型中可以改变_在python中更改数组的数据类型

我通过生成一组随机数并将它们转换为int类型来创建数组。但是,我不认为我下面的方法是有效的。有没有最好的方法来改变数组中的数据类型?# standard normal distributed random numberscrandom.randn(5,5)carray([[-0.37644781, -0.81347483, -0.3689595…

linux脚本多个条件比较大小,shell脚本-比较两个整数大小

开发shell脚本分别实现以脚本传参以及read读入的方式比较2个整数大小。用条件表达式(禁止if)进行判断并以屏幕输出的方式提醒用户比较结果。注意:一共是开发2个脚本。当用脚本传参以及read读入的方式需要对变量是否为数字、并且传参个数不对给予提示。read读入方式#…

git 创建webpack项目_webpack项目的搭建及环境构建

现如今,webpack已经快速进入前端开发人员的眼线(从1.0到4.X的版本的更新迭代),给前端开发也带来了很大的突破,webpack可以分析项目结构,模块化打包机,处理模块化依赖,转换成浏览器可运行代码。废话不多&…

部署Linux服务器实验报告,Linux服务器学习----tomcat 服务配置实验报告(一)

一、实验目的1. 掌握 tomcat 服务的搭建二、实验内容1. 搭建一台缓存 tomcat 服务器三、实验环境1. tomcat 服务器 centos7 对应主机 ip 为 10.10.64.1782. 客户机 win7 对应主机 ip 为 10.10.64.227四、环境搭建在java官网下载Linux的java1.配置Java的变量环境:tar…

python指定条件分类输出_python基础(二)条件判断、循环、格式化输出

继续上一篇,今天主要总结一下条件判断、循环、格式化输出一.条件判断python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样,否则就怎么怎么这样,格式如下:score int(…