边缘检测(一)-灰度图像边缘检测方法

news2024/11/25 5:55:35

      灰度图像边缘检测是数字图像处理与机器视觉中经常遇到的一个问题,边缘检测是否连续、光滑是判断检测方法优劣的一个重要标准,下面通过一个实例提供灰度图像边缘检测方法,该方法对其他图像检测也具有一定的参考价值。

     首先,读入一幅灰度图像,然后直接使用Canny算子对其进行边缘检测,发现其检测效果不好,故改变思路,先将灰度图像转换为二值图像,然后通过数学形态学平滑边缘后再进行边缘检测。算法主要步骤:读入灰度图像,使用最大类间方差法对图像二值化,然后反色,并填充二值图像孔洞。然后,选取合适结构元素分别使用数学形态学开运算和闭运算对图像进行平滑,最后使用bwmorph对平滑后二值图像进行边缘提取,取得了较好的边缘检测效果。最后对原始灰度图像eight.tif边缘检测的主要图像处理过程进行显示。

详细代码如下:

clear all;close all;clc;

I=imread('eight.tif');

E1=edge(I,'canny');%采用canny算子对灰度图像直接进行边缘检测

figure,imshow(E1);%检测效果不好

bw=im2bw(I,graythresh(I));%使用最大类间方差法进行图像二值化

figure,imshow(bw);

bw=imcomplement(bw);%图像反色

figure,imshow(bw);

bw2=imfill(bw,'holes');%对二值图像填孔洞

figure,imshow(bw2);

E2=bwmorph(bw2,'remove');

figure,imshow(E2);%边缘检测效果不理想--二值图像边界不平滑

Se=strel('disk',3);%对比使用不同类型和不同尺寸结构元素

bw3=imopen(bw2,Se);%图像开运算--对图像边界平滑

figure,imshow(bw3);

E3=bwmorph(bw3,'remove');

figure,imshow(E3);%边缘检测效果好

bw4=imclose(bw2,Se);%图像闭运算—对图像边界平滑

figure,imshow(bw4);

E4=bwmorph(bw4,'remove');

figure,imshow(E4);%边缘检测效果好

figure('Name','灰度图像边检检测','NumberTitle','off')

subplot(2,3,1),imshow(I),title('原始灰度图像');

subplot(2,3,3),imshow(bw2),title('二值图像');

subplot(2,3,2),imshow(E1),title('对灰度图像直接使用canny算子边缘检测');

subplot(2,3,4),imshow(E2),title('bwmorph边缘检测');

subplot(2,3,5),imshow(E3),title('bwmorph+imopen边缘检测');

subplot(2,3,6),imshow(E4),title('bwmorph+imclose边缘检测');

%本程序在MATLAB 2018b检测通过

最后运行结果如下图所示:

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

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

相关文章

MongoDB使用$addToSet向数组中添加元素

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第66篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

前端菜鸡学习日记 -- computed和watch的用法

目录 1.computed: 2.watch: 哈喽哇大家,又是新的一周,因为一些特殊的原因,所以目前是比较闲的,就趁机多学习一点东西把,这些学习日记就是学习中的笔记咯,流水账日记则是工作中遇到…

基于Elementui组件,在vue中实现多种省市区前端静态JSON数据展示并支持与后端交互功能,提供后端名称label和id

基于Elementui组件,在vue中实现多种省市区前端静态数据(本地JSON数据)展示并支持与后端交互功能,提供后端名称label和id 话不多说,先上图 1.支持传递给后端选中省市区的id和名称,示例非常完整&#xff0c…

WordPress简单好看的线报主题模板源码

安装说明 到WordPress管理后台中的「外观」-「主题」中点击「添加」,选择baolog的主题包进行上传安装并启用即可。 提示:为了防止主题不兼容,请在安装主题前进行数据备份,防止数据字段重复覆盖等情况发生。 源码截图 源码下载 …

Git--Part3--远程操作 配置 标签管理

theme: nico 远程仓库 Git 是分布式版本控制系统,同⼀个 Git 仓库,可以分布到不同的机器上。怎么分布呢? 最早,肯定只有⼀台机器有⼀个原始版本库,此后,别的机器可以 “克隆” 这个原始版本库&#xff0…

php配合fiddler批量下载淘宝天猫商品数据分享

有个做电商的朋友问我,每次上款,需要手动去某宝去搬运商品图片视频,问我能不能帮忙写个脚本,朋友开口了,那就尝试一下 首先打开某宝,访问一款商品,找出他的数据来源 通过观察我们发现主图数据来…

网络学习(三)TCP三次握手、四次挥手,及Wireshark抓包验证

目录 一、什么是 TCP 三次握手?二、什么是 TCP 四次挥手?三、Wireshark抓包验证3.1 如何捕获三次握手、四次挥手3.2 TCP 三次握手的记录3.3 数据传输3.4 TCP 四次挥手的记录 一、什么是 TCP 三次握手? TCP(Transmission Control …

设计模式(三)代理模式

目录 一、什么是代理模式 二、静态代理 1、定义 2、代码 2.1、接口 2.2、被代理对象 2.3、代理对象 2.4、测试 三、动态代理 1、定义 2、代码 2.1、接口 2.2、目标对象 2.3、代理对象 2.4、测试 一、什么是代理模式 代理模式(Proxy Pattern)是一种结构性模式。代理模…

学习笔记——网络管理与运维——SNMP(SNMP原理)

四、SNMP原理 SNMP的工作原理基于客户端-服务器模型。其中,网络管理系统是客户端,而网络设备是服务器。客户端向服务器发送请求消息(即"Get"或"Set"命令)来获取或修改服务器的信息。服务器收到请求消息后,会返回相应的响…

物联网技术-第2章-物联网技术架构

目录 1.1为什么需要物联网架构 1.2系统体系结构的基本概念 1.3物联网工作过程与人的智能处理问题过程比较 1.4物联网的四层体系架构 1.4.1物联网感知层 1.4.1.1感知层要解决的问题 1.4.1.2感知层的形态 1.4.2物联网网络层 1.4.2.1网络层相关概念 1.4.2.2计算机网络的逻…

深度学习神经网络协同过滤模型(NCF)与用户协同过滤(UCF)的区别

一、效果图 点我查看在线demo 二、启发式推荐系统 推荐系统的核心是根据用户的兴趣需求,给用户推荐喜欢的内容。常用的推荐算法有启发式推荐算法,可分为基于用户的 协同过滤,基于物品的协同过滤。 1、基于用户的协同过滤(UCF…

Api Post快速上手教程

Apipost快速上手教程可以按照以下步骤进行: 一、准备工作 访问Apipost官网下载并安装Apipost客户端,或者选择使用其Web端版本。注册并登录Apipost账号,以便更好地管理和使用你的项目。官网:Apipost-API 文档、设计、调试、自动化…

Matlab初识:什么是Matlab?它的历史、发展和应用领域

目录 一、什么是Matlab? 二、Matlab的历史与发展 三、Matlab的应用领域 四、安装和启动Matlab 五、界面介绍 六、第一个Matlab程序 七、总结 一、什么是Matlab? Matlab 是由 MathWorks 公司开发的一款用于数值计算、可视化以及编程的高级技术计算…

第十七课,海龟画图习题课(一)

图案一,半圆 import turtleturtle.circle(50, 180)turtle.left(90)turtle.forward(100) 图案二,同心圆 import turtleturtle.circle(100)turtle.right(90)turtle.penup()turtle.forward(50)turtle.pendown()turtle.left(90)turtle.circle(150) 图案三&am…

6.1触发器的创建、删除和使用

6.1.1 触发器概述 触发器是一个被指定关联到表的数据库对象,与表的关系密切,不需要用户调用,在一个表的特定事件出现时将会被激活,此时某些MySql语句会自动执行。 触发器用于实现数据库的完整性,具有以下特点&#xff…

【Python机器学习实战】----基于AdaBoost分类树模型、梯度提升分类树模型、Bagging分类树模型以及随机森林分类模型对空气质量等级进行预测

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

前端学习笔记100篇之002:Webpack简明教程(持续完善中)

文章目录 1. **安装和初始化**2. **创建和配置入口文件**3. **编写和配置Webpack配置文件**4. **打包和运行项目** Webpack是一个静态模块打包工具,适用于前端项目构建和模块化开发。Webpack通过从入口文件构建依赖图,然后打包相关的模块,最终…

什么是小语言模型?

介绍 近年来,人工智能领域取得了重大进展,尤其是在自然语言处理领域。GPT-3 和 PaLM 等大型语言模型因其出色的能力而备受关注,新一波小型语言模型正在兴起,它们在性能和效率之间提供了有希望的平衡。 什么是小语言模型&#xf…

[AIGC] 图论基础入门

图论是数学的一个分支,旨在研究图(graph)的属性和应用。这是一个跨学科领域,因为图论可以用于描述和解决各种实际问题。如社交网络分析,电脑网络,生物网络等。 文章目录 什么是图?图的基本性质L…

应急便携式气象观测站

TH-BQX5自然灾害,如台风、暴雨、洪涝、干旱等,给人们的生命财产安全带来了巨大威胁。在应对这些灾害时,准确的气象观测数据是制定有效应对策略的基础。近年来,应急便携式气象观测站在自然灾害的监测和预警中发挥了越来越重要的作用…