matlab数字图像处理函数,MATLAB数字图像处理学习(二)|常用函数

以下的学习整理来自《数字图像处理原理与实践(MATLAB版)》

im2bw

功能:将索引图象、灰度图像和RGB彩色图像转换为二值图像 调用形式: >BW = im2bw(I,level) BW = im2bw(X,cmap,level) BW = im2bw(RGB,level)

其中level用于设置阈值。level取值范围[0, 1]。 示例:

b530e8d68e3529cc793255a82eee6887.png

edge

功能:功能是采用I作为它的输入,并返回一个与I相同大小的二值化图像BW,在函数检测到边缘的地方为1,其他地方为0。采用灰度或一个二值化图像I作为它的输入,并返回一个与I相同大小的二值化图像BW,在函数检测到边缘的地方为1,其他地方为0。

调用形式: >BW = edge(I) BW = edge(I,method) BW = edge(I,'sobel')%自动选择阈值用Sobel算子进行边缘检测。 BW = edge(I,method,threshold) BW = edge(I,method,threshold,direction) BW = edge(---,'nothinning') BW = edge(I,method,threshold,sigma) BW = edge(I,method,threshold,h) [BW,threshOut] = edge(---) [BW,threshOut,Gv,Gh] = edge(---)

示例: 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23clear;

% 使用imread()函数读取图像

I1=imread('C:\Users\huayang\Desktop\MATLAB photo\测试.png');

I=im2bw(I1);

% 将索引彩色图象转换为灰度图像

bw1=edge(I,'roberts');

bw2=edge(I,'sobel');

bw3=edge(I,'prewitt');

bw4=edge(I,'log');

bw5=edge(I,'canny',[0.032,0.08],1);

figure

subplot(2,3,1),imshow(I);

title('原始图像');

subplot(2,3,2),imshow(bw1);

title('roberts');

subplot(2,3,3),imshow(bw2);

title('sobel');

subplot(2,3,4),imshow(bw3);

title('prewitt');

subplot(2,3,5),imshow(bw4);

title('log');

subplot(2,3,6),imshow(bw5);

title('canny');

b9a51c010e43c806a708aed61123c8cc.png

strel

功能:构造结构元素(Structuring element)。所谓结构元素,可以看做是一张小图像,它通常用于图像的形态学运算(如膨胀、腐蚀、开运算、闭运算)。 调用形式: >SE = strel(shape, parameters)%根据shape指定的类型创建一个结构元素SE。 SE = strel('ball', R, H, N) SE = strel('diamond', R) SE = strel('disk', R, N) SE = strel('line', LEN, DEG) SE = strel('octagon', R) SE = strel('pair', OFFSET) SE = strel('periodicline', P, V) SE = strel('rectangle', MN) SE = strel('square', W)

示例: 见下一例。

imdilate与imerode

功能:可以使用imdilate函数进行图像膨胀;可以使用imerode函数进行图像腐蚀。 调用形式: >J = imdilate(I,SE) J = imdilate(I,nhood) J = imdilate(---,packopt) J = imdilate(---,shape) J = imerode(I,SE) J = imerode(I,nhood) J = imerode(---,packopt,m) J = imerode(---,shape)

示例: 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15clear;

% 使用imread()函数读取图像

I1=imread('C:\Users\huayang\Desktop\MATLAB photo\测试.png');

I=im2bw(I1);

sel1=strel('disk',2);%创建一个指定半径1的平面圆盘形的结构元素

im1=imdilate(I,sel1);

im2=imerode(I,sel1);

subplot(2,2,1),imshow(I1);

title('彩色图像');

subplot(2,2,2),imshow(I);

title('原始图像');

subplot(2,2,3),imshow(im1);

title('图像膨胀');

subplot(2,2,4),imshow(im2);

title('图像腐蚀');

a771c244aaf8422dbc16ad500e923bc5.png

imfill

功能:该函数用于填充图像区域和“空洞”。 调用形式: >BW2 = imfill(BW) 这种格式将一张二值图像显示在屏幕上, 允许用户使用鼠标在图像上点几个点, 这几个点围成的区域即要填充的区域。要以这种交互方式操作, BW必须是一个二维的图像。用户可以通过按Backspace键或者Delete键来取消之前选择的区域;通过shift+鼠标左键单击或者鼠标右键单击或双击可以确定选择区域。 [BW2,locations] = imfill(BW) 这种方式, 将返回用户的取样点索引值。注意这里索引值不是选取样点的坐标。 BW2 = imfill(BW,locations) 这种格式允许用户编程时指定选取样点的索引。locations是个多维数组时, 数组每一行指定一个区域。 BW2 = imfill(BW,'holes') 填充二值图像中的空洞区域。 如, 黑色的背景上有个白色的圆圈。 则这个圆圈内区域将被填充。 I2 = imfill(I) 这种调用格式将填充灰度图像中所有的空洞区域。

示例: 1

2

3

4

5

6

7

8

9clear;

% 使用imread()函数读取图像

I1=imread('C:\Users\huayang\Desktop\MATLAB photo\测试.png');

I=im2bw(I1);

im3=imfill(I,'hole');

subplot(1,2,1),imshow(I);

title('原始图像');

subplot(1,2,2),imshow(im3);

title('图像填充');

c077af9be0463e75e4c3d3f268c8ca7b.png

bwareaopen

功能:删除二值图像BW中小面积对象,默认情况下使用8邻域。 调用形式: >BW2 = bwareaopen(BW,P) BW2 = bwareaopen(BW,P,conn)

示例: 1

2

3

4

5

6

7

8

9clear;

% 使用imread()函数读取图像

I1=imread('C:\Users\huayang\Desktop\MATLAB photo\测试.png');

I=im2bw(I1);

im1=bwareaopen(I,1200);

subplot(1,2,1),imshow(I);

title('原始图像');

subplot(1,2,2),imshow(im1);

title('删除对象');

b8864768f339d5d7f6d1c1dbd8237b9b.png

关于matlab函数_连通区域得详解,可参考matlab函数bwareaopen的详解 关于matlab图像处理的更多知识,可参考形态学图像处理 最后,再奉上一个表情包用于测试:

0726cb1f7d878823490edb922e01d717.png23333

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

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

相关文章

php 实现 model层,Thinkhphp5控制器调用的Model层的方法总结

控制器器里:/*** Created by PhpStorm.* User: Haima* Date: 2018/7/8* Time: 15:58*/namespace app\api\controller\v1;use app\api\model\Banner as BannerModel;use app\api\validate\IDMustBePostiveInt;use app\lib\exception\BannerMissException;class Banner{/*** 获取…

matlab6.0序列号,MFC软件获取USB设备的制造商、产品、序列号

PVOID buf malloc(100);char * buf1 (char *)malloc(100);PVOID buf2 malloc(100);char * buf3 (char *)malloc(100);PVOID buf4 malloc(100);char * buf5 (char *)malloc(100);int num 0;int num1 0;int num2 0;PHIDD_ATTRIBUTES a;UpdateData(false); //更新界面int…

matlab中多边形滤波器,几种常见空间滤波器MATLAB实现

本文链接:https://blog.csdn.net/LYduring/article/details/80443573一、目的实现算术均值滤波器、几何均值滤波器、中值滤波器、修正的阿尔法均值滤波器、自适应中值滤波器,并比较不同滤波器的降噪结果。二、代码代码的思路如下:(1)先对原始…

matlab fminimax 例子,Matlab应用实例(8)—fminimax

说明:fminimax用来求最小的最大值,比如城市建设消防站点时,考虑到最主要的因素是到最远的地方的用时(可换算为距离)最小,比如A方案到6个区域的用时为(1,1,1,1,1,12)&…

错误请联系管理员文件 index.php,帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法...

本文将为关注织梦者的朋友提供的是的帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法相关教程,具体实例代码请看下文:本文实例讲述了帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法。分享给大家供大家参考。具体实现方法如下:一、设…

php://filter利用条件,浅谈php://filter技巧

php://filterphp://filter可以作为一个中间流来处理其他流,具有四个参数:名称描述备注resource指定了你要筛选过滤的数据流必选read可以设定一个或多个过滤器名称,以管道符(|)分隔。可选write可以设定一个或多个过滤器名称,以管道符(|)分隔。…

mplayer-php,mplayer+smplayer 前后端播放器安装

环境:f8模式:mplayer做后端,smplayer做前端说明:如果是自己编译mplayer,后面所讲到的codecs路径就可能发生变化,做适当修改即可!以下省略一些解压缩之类的操作步骤!安装livna.org的第…

oracle昨日时间,。。今日,昨日,上周,本月,本年,按时间统计总金额

”本月 102“, 这是错的你少加了“10 7 41 2009-1-5 16:26:39”这条数据!结果具体如下:SQL> select A_ID, PAYMONEY, to_char(A_TIME, YYYY-MM-DD HH24:MI:SS) A_TIME from aa;A_ID PAYMONEY A_TIME---------- ---…

php验证卡号,PHP验证信用卡卡号是否正确函数

这篇文章主要介绍了PHP验证信用卡卡号是否正确函数,本文直接给出实现代码,需要的朋友可以参考下可以使用以下PHP函数,,验证一个卡号是否是信用卡:function validateCard ( $cardnumber ){$cardnumber preg_replace ( " /\D|\s/ " …

ssh远程执行oracle命令,ssh远程执行命令技巧

ssh可以直接在本地显示远程计算机所执行的命令远程ip:192.168.4.36本地:local5[rootlocal5 ~] # ssh 192.168.4.36 df && lsroot192.168.4.36s password:Filesystem 1K-blocks Used Available Use% Mounted on/dev/mapper/VolGro…

小米笔记本装linux教程视频教程,Archlinux安装指南~小米笔记本Air 13.3英寸版本

小米笔记本Air 13.3英寸版本,配置为:Intel Core i5-6200U处理器、8GB内存、256GB固态硬盘、NVIDIA GeForce 940MX独立显卡,13.3英寸1920X1080分辨率的IPS屏幕。1.制作U盘启动盘在Windows下使用USBWiter制作U盘启动盘,ISO为tuna源下…

Elasticsearch的分片平衡问题解决

2023年11月份在某电商系统生产中的Elasticsearch(以下简称ES)集群突然,出现了大量慢查询告警,导致请求堆积。经过几天的排查发现了ES节点主分片和副本分片分布存在不均匀的问题。当然了暂未有定论是由于分片不均衡导致了性能下降&…

linux卸载nomachine,NoMachine 安装与配置及使用

对Linux管理员们来说,远程办公不是什么新鲜事。如果管理员不在服务器跟前,远程办公更是家常便饭。一般而言,图形用户界面(GUI)默认情况下并不安装在Linux服务器上。但是可能有一些Linux管理员还是决定将GUI安装在Linux服务器上。如果你的服务…

linux系统之间无密传输,scp采用无密码在两台linux服务器之间传输数据(示例代码)...

一、root用户:1. 在主机A上执行如下命令来生成配对密钥:ssh-keygen -t rsa按照提示操作,注意,不要输入passphrase。提示信息如下Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa…

linux中top和ps的内存区别,linux - top与ps间的区别

背景在linux系统中提供了2个查询系统负荷值的命令,一个是 ps -o THREAD 一个是 top ,这两个命令都能够查询当前进程的CPU使用率情况,但是所代表的含义确实不一样的,ps -o THREAD 偏向与整个进程周期所占的CPU使用率,而 top 更偏向…

linux登录界面输入密码时卡住6,centos6.8(虚拟机VNC)输入正确用户名和密码仍跳回登录界面...

1)CentOS自动更新到6.8后root无法登陆问题解决虚拟机CentOS服务器不知道被谁更新系统到6.8后,发现在本机上即使输入正确的密码也无法登陆,发现有一些人也碰见过同样的问题,但是他们是因为系统变为64位后,无法找到pam_limits.so的正…

linux内核功能关闭透明大页 功能,redhat linux 7.4关闭透明大页

每一步:在GRUB_CMDLINE_LINUX加入选项 transparent_hugepageneverecho GRUB_CMDLINE_LINUX"transparent_hugepagenever" >> /etc/default/grub第二步:重新生成grub配置文件grub2-mkconfig -o /boot/grub2/grub.cfgGenerating grub confi…

linux获取ip地址的接口,获取Linux上接口的IP地址

sjsam..23如果您正在寻找特定接口的地址(IPv4),请说wlan0然后尝试使用getifaddrs()的代码:#include #include #include #include #include #include #include #include int main(int argc, char *argv[]){struct ifaddrs *ifaddr, *ifa;int family, s;char host[NI_MAXHOST];if…

linux yum 安装widget,CentOS 7安装Qt5.12.1过程

默认下载在Downloads目录下预安装sudo yum -y install mesa-libGL-devel mesa-libGLU-devel freeglut-devel给下载的文件赋予可执行的权限chmod x qt-opensource-linux-x64-5.12.1.run执行文件,进行安装./qt-opensource-linux-x64-5.12.1.run接下来会进行界面化的安…

usb otg vnc linux,20131126版本后,可以从PC通过USB-OTG VNC到pcDuino

为什么80%的码农都做不了架构师?>>>有些玩家购买pcDuino到手后发现自己没有显示器,没有鼠标键盘,有的只有手机的充电器和数据线。pcDuino开发者了解到粉丝们的郁闷之后,在软件上帮忙大家解决了这个问题。下面就给大家介绍…