matlab 边缘检测不闭合,Matlab多种图像边缘检测方法

1、用Prewitt算子检测图像的边缘

I = imread('bacteria.BMP');

BW1 = edge(I,'prewitt',0.04);             % 0.04为梯度阈值

figure(1);

imshow(I);

figure(2);

imshow(BW1);

2、用不同σ值的LoG算子检测图像的边缘

I = imread('bacteria.BMP');

BW1 = edge(I,'log',0.003); % σ=2

imshow(BW1);title('σ=2')

BW1 = edge(I,'log',0.003,3); % σ=3

figure, imshow(BW1);title('σ=3')

3、用Canny算子检测图像的边缘

I = imread('bacteria.BMP');

imshow(I);

BW1 = edge(I,'canny',0.2);

figure,imshow(BW1);

4、图像的阈值分割

I=imread('blood1.tif');

imhist(I);          % 观察灰度直方图, 灰度140处有谷,确定阈值T=140

I1=im2bw(I,140/255); % im2bw函数需要将灰度值转换到[0,1]范围内

figure,imshow(I1);

5、用水线阈值法分割图像

afm = imread('afmsurf.tif');figure, imshow(afm);

se = strel('disk', 15);

Itop = imtophat(afm, se); % 高帽变换

Ibot = imbothat(afm, se); % 低帽变换

figure, imshow(Itop, []);   % 高帽变换,体现原始图像的灰度峰值

figure, imshow(Ibot, []);   % 低帽变换,体现原始图像的灰度谷值

Ienhance = imsubtract(imadd(Itop, afm), Ibot);% 高帽图像与低帽图像相减,增强图像

figure, imshow(Ienhance);

Iec = imcomplement(Ienhance); % 进一步增强图像

Iemin = imextendedmin(Iec, 20); figure,imshow(Iemin) % 搜索Iec中的谷值

Iimpose = imimposemin(Iec, Iemin);

wat = watershed(Iimpose); % 分水岭分割

rgb = label2rgb(wat); figure, imshow(rgb); % 用不同的颜色表示分割出的不同区域

6、对矩阵进行四叉树分解

I = [ 1     1     1     1     2     3     6     6

1     1     2     1     4     5     6     8

1     1     1     1    10    15     7     7

1     1     1     1    20    25     7     7

20    22    20    22     1     2     3     4

20    22    22    20     5     6     7     8

20    22    20    20     9    10    11    12

22    22    20    20    13    14    15    16];

S = qtdecomp(I,5);

full(S)

7、将图像分为文字和非文字的两个类别

I=imread('4-11.jpg');

I1=I(:,:,1);

I2=I(:,:,2);

I3=I(:,:,3);

[y,x,z]=size(I);

d1=zeros(y,x);

d2=d1;

myI=double(I);

I0=zeros(y,x);

for i=1:x

for j=1:y

%欧式聚类

d1(j,i)=sqrt((myI(j,i,1)-180)^2+(myI(j,i,2)-180)^2+(myI(j,i,3)-180)^2);

d2(j,i)=sqrt((myI(j,i,1)-200)^2+(myI(j,i,2)-200)^2+(myI(j,i,3)-200)^2);

if (d1(j,i)>=d2(j,i))

I0(j,i)=1;

end

end

end

figure(1);

imshow(I);

% 显示RGB空间的灰度直方图,确定两个聚类中心(180,180,180)和(200,200,200)

figure(2);

subplot(1,3,1);

imhist(I1);

subplot(1,3,2);

imhist(I2);

subplot(1,3,3);

imhist(I3);

figure(4);

imshow(I0);

8、形态学梯度检测二值图像的边缘

I=imread('wrod213.bmp');

imshow(I);

I=~I;        % 腐蚀运算对灰度值为1的进行

figure, imshow(I);

SE=strel('square',3); % 定义3×3腐蚀结构元素

J=imerode(~I,SE);

BW=(~I)-J;        % 检测边缘

figure,imshow(BW);

9、形态学实例——从PCB图像中删除所有电流线,仅保留芯片对象

I=imread('circbw.tif');

imshow(I);

SE=strel('rectangle',[40 30]); % 结构定义

J=imopen(I,SE);            % 开启运算

figure,imshow(J);

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

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

相关文章

实现CSS在线美化(格式化)、压缩、加密、解密、混淆工具-toolfk程序员工具网

本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果。ToolFk还支持 BarCode条形码在线生成、 QueryList采集…

只是他给的实在太多了!

工作几年后,总是会问自己一个问题,工作的意义是什么?这个如果要在网络上寻找答案,那一定是多如牛毛,每一个人都有一套自己的看法。在一开始出入社会工作之时,我并没有意识到这个问题,更没有思考…

[ci]jenkins server启动,通过jnlp的方式启动slave(容器模式)

jenkins server启动,通过jnlp的方式启动slave. java -jar jenkins.jar 配置jnlp端口--全局安全 配置云 配置项目 执行成功 转载于:https://www.cnblogs.com/iiiiher/p/7978831.html

Oracle 中UNDO与REDO的差别具体解释

一 为了更清楚的看出2者差别,请看下表: UNDO REDO Record ofHow to undo a changeHow to reproduce a changeUsed forRollback, Read-ConsistencyRolling forward DB ChangesStored …

php实现文件留言,PHP文件操作及实例:留言板

一、文件操作函数1.创建文件:touch(./xxx.php);bool touch ( string $filename [, int $time time() [, int $atime ]] )2.复制文件:copy(./xxx.php,./yyy.php);3.移动或重命名:rename(./xxx.php,./yyy.php);4.删除文件:unlink(.…

WPF-11 路由事件之一

什么是路由事件?我们从两个维度来理解路由事件:功能的角度来看,路由事件是一种事件类型,不仅仅可以在事件源上处理事件响应,还可以在元素树的多个侦听器上处理事件响应(事件侦听器是附加和调用事件处理程序的元素。事件…

个人总结的一个中高级Java开发工程师或架构师需要掌握的一些技能...

近三年,其实都是在做一个项目,项目是一个大型的多节点部署的项目,做了好几个版本,中间用到了很多技术和框架, 也用了一些管理工具和敏捷实践。我这里不是来说项目的,因为最近看了一些招聘信息,结…

Android 进程常驻(5)----开机广播的简单守护以及总结

这是一个轻量级的库,配置几行代码。就能够实如今android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下。clean master获取root权限下都无法杀死进程 支持系统2.3到6.0 支持大部分设备,包含三星。华为。oppo&#xff0…

[k8s]metricbeat的kubernetes模块kube-metric模块

正确姿势启动metricbeat metricbeat.modules: - module: systemmetricsets:- cpu- filesystem- memory- network- processenabled: trueperiod: 10sprocesses: [.*]cpu_ticks: falseoutput.elasticsearch:hosts: ["http://192.168.x.x:9200"]setup.template.name: &q…

如何为 Task 添加超时功能

前言假设有如下代码,功能是首先从缓存获取数据,如果没有命中缓存,则直接从数据库获取:var data await GetFromCache(); if (data is null) {data await GetFromDB(); }对于获取缓存数据,我们需要限制一下GetFromCach…

php 随机指定位数,php生成一个可选位数的随机码

echo coding(6);function coding($num){$str_arr array(‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘,‘i‘,‘j‘,‘k‘,‘l‘,‘m‘,‘n‘,‘o‘,‘p‘,‘q‘,‘r‘,‘s‘,‘t‘,‘u‘,‘v‘,‘w‘,‘x‘,‘y‘,‘z‘,‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘…

Animate与transform的使用

Animate是用css给前端加载动画的效果&#xff1a; 网址&#xff1a;https://daneden.github.io/animate.css/ <!DOCTYPE html> <html lang"en"> <head><link rel"stylesheet" href"static/css/Animate.css"><meta ch…

angular中的cookies与cookieStore区别

设置cookie用put()方法: $cookies.put(key, value[, options]); $cookieStore.put(key, value); 例如设置一个cookie&#xff0c;名为“userName”&#xff0c;值为“yangmin”&#xff1a; //使用$cookies设置cookie $cookies.put(userName, yangmin); //使用$cookieStore设置…

ASP.NET Core 6框架揭秘实例演示[29]:搭建文件服务器

通过HTTP请求获取的Web资源很多都来源于存储在服务器磁盘上的静态文件。对于ASP.NET应用来说&#xff0c;如果将静态文件存储到约定的目录下&#xff0c;绝大部分文件类型都是可以通过Web的形式对外发布的。“Microsoft.AspNetCore.StaticFiles” 这个NuGet包中提供了三个用来处…

js 栈(进制转换)

<!DOCTYPE html>Documentposted 2017-12-07 19:33 mysure 阅读(...) 评论(...) 编辑 收藏 刷新评论刷新页面返回顶部转载于:https://www.cnblogs.com/ar13/p/8000718.html

流程展示 php,js实现动态的流程进度展示条

这次给大家带来js实现动态的流程进度展示条&#xff0c;js实现动态流程进度展示条的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。一、设计思路分为以下几步(仅供参考)【竖线线】这个采用ul的list标签制作&#xff0c;保证了可随时添加&#xff0c;以…

【我们一起写框架】C#的AOP框架

原文:【我们一起写框架】C#的AOP框架前言 AOP&#xff0c;大家都是听过的&#xff0c;它是一种面向切面的设计模式。 不过AOP虽然是被称为设计模式&#xff0c;但我们应该很少能看到AOP设计的框架。为什么呢&#xff1f; 因为&#xff0c;AOP单独设计的框架几乎是无法使用的。普…

新浪微博授权认证过程

为什么80%的码农都做不了架构师&#xff1f;>>> 一、授权认证 1、请求用户授权Token URL&#xff1a; https://api.weibo.com/oauth2/authorize HTTP请求方式:GET/POST 请求参数 必选 类型及范围 说明 client_id true string 申请应用时分配的AppKey。 redire…

VisualStudio 使用 FastTunnel 辅助搭建远程调试环境

有时候需要远程调试一些用户问题&#xff0c;期望能使用本机的 Visual Studio 开发环境&#xff0c;调试远程的用户的设备上的应用。这时会遇到的一个问题是如何让本机的 Visual Studio 可以连接上远程的用户的设备&#xff0c;从而进行调试。本文将告诉大家如何采用 FastTunne…

深入理解null的原理

--null的原理 --oracle一直将null和空字符串’’<长度为0>同等对待<如’’ is null是true,’’null为false,如果声明a varchar2:’’,那么a is null为true,a’’为false>--1.null的运算 --算术表达式和null 运算总为null,实际上所有的操作符除了||连接操作符外&…