matlab 连通域数量,【Matlab】找到矩阵中每个连通域的最小值
【Matlab】找到矩阵中每个连通域的最小值
【Matlab】找到矩阵中每个连通域的最小值
连通域在我浅薄的图像处理知识中,一直是很神圣的存在。最近想在Matlab里实现的时候,发现竟然一个函数就解决了,Matlab真香!
首先,还是介绍一下主角函数 bwlabel,看语法还是比较简单的,其中第二个参数 conn 可以设置判断连通域时用4连接还是8连接。另外,这种既可以输入一个参数,又可以输入两个参数的函数实现,可以看我之前的博客,文末有链接~
ok,那接下来就实际试试吧:
a = xlsread('dataset.xlsx');
b = bwlabel(a,4);
这里我们选的是4联通,如果改成8联通的话,标签就只剩0和1了,因为8联通的条件更严格,也更难判定其为连通域。具体原理看下图:
目前为止,我们找到了矩阵中的连通域,那么接下来就要寻找各个连通域中的最小值了。代码如下:
data = xlsread('dataset.xlsx');
dataLabel = bwlabel(data,4);
dataLabelType = unique(dataLabel);
labelNum = size(dataLabelType,1)-1; % Obtain the number of label type.
minData = ones(labelNum,1); % Initializing the minimum element in matrix.
minDataRow = zeros(labelNum,1); % Initializing the row index of minimum element in each label.
minDataCol = zeros(labelNum,1); % Initializing the column index of minimum element in each label.
for i = 1:labelNum
dataInSpecialLabel = data(dataLabel==i); % Obtain all the elements of special label (Continuously increasin).
minData(i,1) = min(dataInSpecialLabel); % Obtain the minimum one.
[minDataRow(i,1),minDataCol(i,1)] = find(data == minData(i,1)); % Record the row and column index of the minimum one.
end
代码中的 unique 函数是确定数组中都存在哪些数,具体用法看文末链接。
运行代码,看看结果:
结果如上图所示,代码输出了每个连通域最小值所处的行列坐标,代码功能也便实现了。
其实我一直喜欢代码开源,因为之前看了很多博客,有的是讲原理没代码,有的放代码没注释,甚至运行直接报错。所以我就想,直接把代码贴出来,再配一些解释说明,方便大家使用,也希望不要再反复造轮子了。
但是,我写代码是我想写,而不是我要写。一些代码封装的像艺术品,有的人都不会用,真白瞎我代码了。
猜你喜欢:????
?【Matlab】函数输入个数不定怎么办?
?【Matlab】如何确定数组中存在哪几个数?
【Matlab】找到矩阵中每个连通域的最小值相关教程
稀疏矩阵的乘法运算
稀疏矩阵的乘法运算 稀疏矩阵的乘法运算 题目信息 输入 输出 测试样例 解答 想法 题目信息 数据压缩是提高传输、存储效率一种技术。 本实验要求实现两个稀疏矩阵相乘积的算法。其中稀疏矩阵非零元素数量小于100. 第1个稀疏矩阵的行数,列数,非零元个数(三个数
python matplotlib绘图、混淆矩阵 汉字字体、数字、英文字母的设
python matplotlib绘图、混淆矩阵 汉字字体、数字、英文字母的设置 最近在写一篇文章的时候,文章对图片格式有要求:图中汉字用宋体六号、数字和英文字母用新罗马字体,这些都需要在一张图中表现出来。经过一番查找摸索,现归纳整理如下: 对坐标轴设置 现假
【Matlab】—{最小二乘法拟合一阶线性拟合传感器实验}
【Matlab】—{最小二乘法拟合一阶线性拟合传感器实验} ???九层妖塔?起于垒土 【Matlab】—{最小二乘法拟合一阶线性拟合传感器实验} 一、代码 二、数据处理结果 三、Notes 一、代码 %电容传感器位移实验数据 最小二乘法一阶线性拟合x = [13.080,12.580,12.080,
【Matlab】怎么实现数据归一化与标准化?
【Matlab】怎么实现数据归一化与标准化? 前段时间,突然发现,做了一年的机器学习,居然没有对特征归一化,不过从结果看好像问题不大,从原理上看嘛,我们另开一篇博客单讲。所以这篇文章就讲讲数据归一化和标准化的区别及其实现方式。 关于 归一化 和 标准
矩阵的快速转置算法
矩阵的快速转置算法 矩阵的快速转置算法 题目信息 输入 输出 测试样例 解答 补充 题目信息 数据压缩是提高传输、存储效率一种技术。本实验要求实现三元组顺序表表示下的矩阵快速转置算法。 稀疏矩阵的行数、列数、非零元个数(三个数都大于0) 以行为主序输入稀
MATLAB【十四】————调用深度库生成exe,批量运行三层文件夹
MATLAB【十四】————调用深度库生成exe,批量运行三层文件夹下图片,保存结果 运行路径:D:\matlab\cmd_batch_processing 文件夹架构: clear;clc;close all; %% crop the im into 256*256 oriDataPath = 'D:\matlab\cmd_batch_processing\data\'; targetP
MATLAB18.04安装过程
MATLAB18.04安装过程 参考了以下博客 https://blog.csdn.net/Eric2016_Lv/article/details/52653915?locationNum=6#reply 应该是下面这个,上面那个不太对。 https://blog.csdn.net/u014577061/article/details/79408337 以下是我安装过程的心得: 安装的时候
【啃书】《智能优化算法及其MATLAB实例》例8.2禁忌搜索算法进行
【啃书】《智能优化算法及其MATLAB实例》例8.2禁忌搜索算法进行函数寻优 文章目录 问题描述 仿真过程 matlab源码 问题描述 仿真过程 matlab源码 %该脚本应命名为func2.m%%%%%%%%%%%%%%%%%%%%%%%%%%%%适配值函数%%%%%%%%%%%%%%%%%%%%%%%%function y=func2(x)y=
matlab 连通域数量,【Matlab】找到矩阵中每个连通域的最小值相关推荐
- 【Matlab】找到矩阵中每个连通域的最小值
1.Introduction 连通域在我浅薄的图像处理知识中,一直是很神圣的存在.最近想在Matlab里实现的时候,发现竟然一个函数就解决了,Matlab真香! 2.Materials and met ...
- matlab+代码前+有加号,矩阵中出现加号和星号 什么意思
matlab中运行后有个矩阵中出现加号和星号 "+ * " 这是什么意思 Columns 52 through 54 0 ...
- numpy找到矩阵中不同元素的种类_基于NumPy和图像分类的人工神经网络构建
基于NumPy和图像分类的人工神经网络构建 本文利用NumPy系统在Python中构建人工神经网络,以便为Fruits360数据集执行图像分类应用程序. 本文提及的所有内容(即图像和源代码,不包括Fr ...
- matlab如何判断矩阵中元素都大于0_在MATLAB中找到矩阵中零元素的数量
I have a NxM matrix for example named A. After some processes I want to count the zero elements. How ...
- MATLAB 如何在二维矩阵中快速找到最大值的位置
网上找了找方法都比较冗长,适合于复杂的矩阵,但对于简单的二位矩阵找最大值有没有简易方法? 直接贴代码: [m,j]=max(max(ave_pre)):%%得到的是整个矩阵最大值的值和纵坐标 [m,i ...
- matlab找出二维矩阵中最大值的位置或者最小值的位置
matlab寻找最大值或者最小值是通过max和min命令 对应二维矩阵寻找最大元素就是max(max(A)),注意二维矩阵要写两个max 找对应位置用find函数 举个例子: >> A=[ ...
- matlab 将矩阵中的0置为Inf(邻接矩阵)
矩阵中的0置为Inf(邻接矩阵) ind=find(x==0); x(ind)=inf; index=isnan(z); z(index)=0; 在Matlab中,有一个logical数据类型,和C+ ...
- matlab 如何统计矩阵中大于、小于或等于某一值的位置、个数
善用 find() 和 sum() 函数! 假设存在如下矩阵 a : >> a = [1,2,3;4,5,6;7,8,9] a = 1 2 3 4 5 ...
- matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...
导航:网站首页 > 求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.* 求Matlab程序:在2行矩阵中,如何求 ...
最新文章
- python太慢了-python 读取大文件越来越慢
- 柿子不能和什么同吃?柿子相克食物大盘点
- TCC两阶段补偿方案
- 线性表的定义与操作-顺序表,链式表(C语言)
- [html] 你觉得写Html难吗?难在哪?为什么?
- (pytorch-深度学习系列)网络中的网络(NiN)
- DHCP的安装到简单测试(tar方式)
- DBA:介里有你没有用过的“CHUAN”新社区版本Redis6.0
- 安装apache 后,找不到服务,解决办法
- [20150123]热链竞争.txt
- 【LeetCode】【字符串】题号:*557. 反转字符串中的单词 III
- Spring Cloud(Greenwich版)-01-服务生产者与服务消费者
- 场景编辑器 Scene Building
- 日记app(1.0)进展报告
- 如何成为一名全栈开发人员
- html个个代码的意思,网页HTML中各个代码意思大全
- 数据完整性、存储过程、函数
- 前端图片压缩 pngquanty
- 基于Springboot+Vue的电子购物商城设计
- 三个sata硬盘只能读取两个_两个SATA硬盘驱动器显示为可弹出
热门文章
- 线程创建方式3-实现 callable接口(Java)
- 关于发布WP 8.1应用信息不匹配问题的解决办法
- 理解BERT Transformer:Attention is not all you need!
- 【OCP|052】OCP题库更新,052最新考题及答案整理-第10题
- 2018年区块链五大关键趋势预测:区块链与物联网结合有望突破
- 获取TextView每行的内容 (涉及getLineCount为0,getLineEnd问题)
- JavaScript中的六种错误类型
- linux源代码剖析之二boot
- Linux命令解释之tail
- 一文读懂python本地开发环境配置