Matlab 中 imregionalmax函数 和 bwconncomp函数的使用

Matlab 中 imregionalmax函数 和 bwconncomp函数的使用

imregionalmax函数

找出当前连通区域内元素大于或等于强度t的元素,将其置为1,,其他像素都设置为0。返回二值图像。

举例说明

三种用法如下:
BW = imregionalmax(I)
BW = imregionalmax(I,conn)
gpuarrayBW = imregionalmax(gpuarrayI,___)

  1. BW = imregionalmax(I) 默认2维数据为8联通,3维数据为26联通。
    假设A如下:

    A =

    10    10    10    10    10    10    10    10    10    10
    10    22    22    22    10    10    44    10    10    10
    10    22    22    22    10    10    10    45    10    10
    10    22    22    22    10    10    10    10    44    10
    10    10    10    10    10    10    10    10    10    10
    10    10    10    10    10    33    33    33    10    10
    10    10    10    10    10    33    33    33    10    10
    10    10    10    10    10    33    33    33    10    10
    10    10    10    10    10    10    10    10    10    10
    10    10    10    10    10    10    10    10    10    10
    

    regmax = imregionalmax(A)
    上述命令的结果为:
    regmax =
    10×10 logical array

           0   0   0   0   0   0   0   0   0   0
           0   1   1   1   0   0   0   0   0   0
           0   1   1   1   0   0   0   1   0   0
           0   1   1   1   0   0   0   0   0   0
           0   0   0   0   0   0   0   0   0   0
           0   0   0   0   0   1   1   1   0   0
           0   0   0   0   0   1   1   1   0   0
           0   0   0   0   0   1   1   1   0   0
           0   0   0   0   0   0   0   0   0   0
           0   0   0   0   0   0   0   0   0   0
    

若A(3,3) = 23,则相同命令结果为:
regmax =
10×10 logical array

	       0   0   0   0   0   0   0   0   0   0
	       0   0   0   0   0   0   0   0   0   0
	       0   0   1   0   0   0   0   1   0   0
	       0   0   0   0   0   0   0   0   0   0
	       0   0   0   0   0   0   0   0   0   0
	       0   0   0   0   0   1   1   1   0   0
	       0   0   0   0   0   1   1   1   0   0
	       0   0   0   0   0   1   1   1   0   0
	       0   0   0   0   0   0   0   0   0   0
	       0   0   0   0   0   0   0   0   0   0

若A(3,3) = 20,则相同命令结果为:
regmax =
10×10 logical array

	       0   0   0   0   0   0   0   0   0   0
	       0   1   1   1   0   0   0   0   0   0
	       0   1   0   1   0   0   0   1   0   0
	       0   1   1   1   0   0   0   0   0   0
	       0   0   0   0   0   0   0   0   0   0
	       0   0   0   0   0   1   1   1   0   0
	       0   0   0   0   0   1   1   1   0   0
	       0   0   0   0   0   1   1   1   0   0
	       0   0   0   0   0   0   0   0   0   0
	       0   0   0   0   0   0   0   0   0   0
  1. BW = imregionalmax(I,conn)
    conn:指定函数中使用的连通度。
  2. gpuarrayBW = imregionalmax(gpuarrayI,___)
    gpuarrayBW = imregionalmax(gpuarrayI,___) 在GPU上执行该操作,输入图像必须是一个gpuArray,函数返回一个gpuArray。需要支持 Parallel Computing Toolbox™ .

bwconncomp函数

找出二值图像中所有的连通区域。

举例说明

用法如下:
CC = bwconncomp(BW)
CC = bwconncomp(BW,conn)

  1. BW = imregionalmax(I) 默认2维数据为8联通,3维数据为26联通。
    假设S如下:
    S =

            0     0     0     0     0
    		0     1     1     0     0
    		0     1     1     0     0
    	    0     0     0     1     1
    	    1     1     0     0     0
    

    D = bwconncomp(S);
    上述命令的结果为:
    在这里插入图片描述
    D=

    1*1 struct

    D.Connectivity 使用的连通度
    D.ImageSize 图像大小
    D.NumObjects 连通区域数
    D.PixelIdxList 连通区域的索引

这里具体看看 D.PixelIdxList:
因为是默认的8联通,所以7,8,12,13和19,24为一个连通区域,若使用4连通,这里就是两个连通区域。
在这里插入图片描述

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以使用MATLAB函数,需要使用MATLAB Engine API for Python。这个API允许Python程序与MATLAB引擎进行交互,可以在Python调用MATLAB函数,也可以在MATLAB调用Python函数使用这个API需要先安装MATLAB和Python,并安装MATLAB Engine for Python。安装完成后,可以在Python使用以下代码来调用MATLAB函数: ``` import matlab.engine eng = matlab.engine.start_matlab() result = eng.my_matlab_function(arg1, arg2) ``` 其,my_matlab_function是MATLAB函数名,arg1和arg2是传递给函数的参数。调用完成后,可以得到MATLAB函数的返回值result。 ### 回答2: Python是一种高级编程语言,被广泛用于科学计算、数据分析等领域,而Matlab则是一个专注于科学计算和数据可视化的商业软件。有时候,我们需要在Python使用Matlab函数,来实现一些特定的功能。本文将介绍如何在Python使用Matlab函数。 Python常用的Matlab函数 在Python调用Matlab函数之前,需要了解一些常用的Matlab函数。下面是一些常用的Matlab函数及其功能: - load:加载一个矩阵或向量到工作空间。 - save:保存一个矩阵或向量到磁盘。 - size:获取一个矩阵或向量的大小信息。 - linspace:返回一段等间隔的向量。 - meshgrid:生成网格点坐标矩阵。 - plot:绘制二维图形。 - surf:绘制三维图形。 通过Python接口调用Matlab函数 Python提供了许多工具包和接口,可以与Matlab进行通信。下面是两种常用的在Python调用Matlab函数的方法: 1. 使用matlab.engine模块 Python提供了一个名为matlab.engine的模块,可以直接从Python启动Matlab引擎,并调用Matlab函数。下面是一个简单的示例: ``` import matlab.engine # 启动Matlab引擎 eng = matlab.engine.start_matlab() # 在Matlab创建一个矩阵 mat = eng.rand(3, 3) # 在Python输出该矩阵 print(mat) # 关闭Matlab引擎 eng.quit() ``` 该程序会在Python启动Matlab引擎,并创建一个3x3的随机矩阵,并将其输出到Python。最后,关闭Matlab引擎。 2. 使用pymatbridge模块 pymatbridge是一个Python包,允许Python与Matlab进行更加灵活和复杂的交互。下面是一个示例: ``` from pymatbridge import Matlab # 创建一个Matlab对象 mlab = Matlab() # 启动Matlab引擎 mlab.start() # 在Matlab创建一个矩阵 mlab.eval("A = rand(3)") # 在Python获取矩阵变量A的值 result = mlab.get_variable('A') # 输出结果 print(result) # 关闭Matlab引擎 mlab.stop() ``` 该程序首先创建一个Matlab对象,然后启动Matlab引擎。接着,在Matlab创建一个3维随机矩阵,并将其存储在变量A。最后,在Python获取变量A的值,并输出到Python控制台。 注意事项 使用Python调用Matlab函数需要注意以下几点: - 必须安装好Matlab和Python,并确保能够运行。 - 必须选择适当的Python版本和Matlab版本,并在安装时确保版本匹配。 - Python和Matlab需要在同一台计算机安装。 - 使用matlab.engine或pymatbridge等Matlab API必须授权使用Matlab软件。 总结 本文介绍了如何在Python使用Matlab函数。Python和Matlab都是很好用的科学计算工具,能够使我们更加高效地进行科学计算和数据处理。在实际应用,我们可以根据具体需求来选择使用哪种工具。 ### 回答3: Python是一种非常流行的编程语言,它在科学计算和数据分析方面也非常强大。Matlab是另一种常用的科学计算软件,它也具有广泛的应用。在很多情况下,人们会使用Python和Matlab来实现相同的任务。因此,有时候需要Python使用Matlab函数。 Python和Matlab实现科学计算的方式有所不同。Matlab为科学计算提供了很多内置函数和工具箱,使得它在处理科学计算问题上非常强大。而Python通常使用第三方库和模块来完成类似的任务。但是,有时候Matlab函数在Python也是非常有用的,因此需要Python使用Matlab函数。 要让Python使用Matlab函数,需要使用Matlab引擎。Matlab引擎是一个Python库,它允许Python与Matlab交互。使用Matlab引擎,Python可以调用Matlab函数,然后将结果传递回Python。 要使用Matlab引擎,需要先安装Matlab。然后,在Python安装Matlab引擎。安装完成后,就可以使用Matlab引擎调用Matlab函数了。 例如,假设需要在Python使用Matlab的fft函数计算信号的傅里叶变换。可以使用以下Python代码: ``` import matlab.engine eng = matlab.engine.start_matlab() y = eng.fft(x) eng.quit() ``` 在这个例子,首先导入Matlab引擎,然后使用start_matlab函数启动Matlab引擎。然后,使用fft函数计算信号的傅里叶变换,并将结果存储在y变量。最后,使用quit函数关闭Matlab引擎。 总之,Python可以使用Matlab引擎调用Matlab函数。这为Python用户提供了更广泛的科学计算和数据分析方案。通过Python和Matlab的结合,用户可以更加高效地解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值