二维多孔介质图像的粒度分布研究(Matlab代码实现)

news2024/12/21 17:28:37

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

使用流域分割算法对岩石二维二值图像进行粒度分布的研究是一项重要的任务。粒度分布是指岩石样本中不同颗粒大小的分布情况,对于了解岩石的物理性质和工程行为具有重要意义。

在进行粒度分布研究时,首先需要获取岩石的二维二值图像。这可以通过采用现代高分辨率成像技术,如扫描电子显微镜(SEM)或计算机断层扫描(CT)等方法来实现。然后,使用流域分割算法对图像进行处理,将图像划分为不同的流域或区域,以便对每个区域的粒度进行分析。

流域分割算法是一种基于图像处理和计算机视觉技术的方法,可以将图像中的像素分成不同的区域,使得每个区域具有相似的特征。在岩石图像中,流域分割算法可以将不同类型的颗粒或孔隙分离出来,从而实现对不同颗粒大小的分析。

通过对每个流域或区域进行粒度分析,可以得到岩石样本中不同颗粒大小的分布情况。这可以通过计算每个区域中颗粒的面积或周长来实现。此外,还可以通过计算每个区域中颗粒的等效直径或体积来获得更详细的粒度信息。

粒度分布的研究对于岩石的物理性质和工程行为有着重要的影响。不同颗粒大小的分布情况可以反映岩石的孔隙结构、渗透性和强度等特性。例如,颗粒较大的区域通常具有较高的渗透性,而颗粒较小的区域则可能具有较高的强度。因此,通过粒度分布的研究,可以为岩石的工程设计和地质勘探提供重要的参考依据。

总之,使用流域分割算法对岩石二维二值图像进行粒度分布的研究是一项重要的任务。通过对每个区域进行粒度分析,可以获得岩石样本中不同颗粒大小的分布情况,从而为岩石的物理性质和工程行为提供重要的参考依据。

📚2 运行结果

部分代码:

%Outputs
Average_grain_radius_micron=mean(R)
Standard_deviation_of_grain_radius_micron=std(R)
figure('units','normalized','outerposition',[0 0 1 1])
subplot(1,2,1)
RGB=label2rgb(Pr_L,'jet', 'w', 'shuffle');
imshow(RGB)
imwrite(RGB,'Output.png')


subplot(1,2,2)
Rel_Frequencies=hist(R,[1:round(max(R)/Bins):round(max(R))])./sum(sum(hist(R,[1:round(max(R)/Bins):round(max(R))]))); 
bar([1:round(max(R)/Bins):round(max(R))],Rel_Frequencies); 
xlabel('Equivalent Grain Radius (micron)'); ylabel('Relative Frequency'); axis([1 max(R) 0 max(Rel_Frequencies)]); axis square;
annotation('textbox',[.2 .85 .1 .1], 'String', [ 'Average grain radius = ' num2str(Average_grain_radius_micron) ' micron'])

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]Rabbani, A., Ayatollahi, S. (2015). Comparing three image processing algorithms
to estimate the grain-size distribution of porous rocks from binary 2d images and
sensitivity analysis of the grain overlapping degree. Special Topics & Reviews in
Porous Media: An International Journal 6 (1), 71-89.

🌈4 Matlab代码实现

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

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

相关文章

【量化分析】Python 布林线( Bollinger)概念

一、说明 布林线(BOLL),Bollinger Bands,利用统计原理,求出股价的标准差及其信赖区间,从而确定股价的波动范围及未来走势,利用波带显示股价的安全高低价位,因而也被称为布林带。 二、布林带基本概念 布林线…

固定资产管理数据怎么算?

在企业的运营中,固定资产的管理是一个至关重要的环节。然而,对于许多企业来说,理解和管理这些资产的数据却常常是一团迷雾。那么,固定资产管理数据究竟应该如何计算呢?这是一个需要我们深入探讨的问题。  我们需要明…

OpenCV(三十六):霍夫直线检测

1.检测直线的霍夫变换原理 2.检测直线函数HoughLines() 检测直线流程: Step1:将参数空间的坐标轴离散化。 Step2:将图像中每个非0像素通过映射关系求取在参数空间通过的方格 Step3:统计参数空间内每个方格出现的次数,选取次数大于某一值的方格作为表示直线的方格…

分享一个python+django开发的高校学生成绩可视化分析系统源码、lw、调试

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

机器学习策略二——优化深度学习系统

进行误差分析 (Carrying out error analysis) 如果你希望让学习算法能够胜任人类能做的任务,但你的学习算法还没有达到人类的表现,那么人工检查一下你的算法犯的错误也许可以让你了解接下来应该做什么。这个过程称为错误分析。 假设你正在调试猫分类器…

【GO语言基础】函数

系列文章目录 【Go语言学习】ide安装与配置 【GO语言基础】前言 【GO语言基础】变量常量 【GO语言基础】数据类型 【GO语言基础】控制流 【GO语言基础】函数 文章目录 系列文章目录函数基础函数调用 GoLang API(包)简单介绍标准库:第三方库&…

【计算思维题】少儿编程 蓝桥杯青少组计算思维 数学逻辑思维真题详细解析第9套

蓝桥杯青少组计算思维 数学逻辑思维真题详细解析第9套 第十四届蓝桥杯省赛真题 1、要把下面4张图片重新排列成蜗牛的画像,该如何排列这些图片 A、 B、 C、 D、 答案:A 考点分析:主要考查小朋友们的观察能力空

轻松部署高颜值社区,在Ubuntu上搭建Cpolar+HYBBS论坛指南

文章目录 前言1. HYBBS网站搭建1.1 HYBBS网站安装1.2 HYBBS网站测试1.3. cpolar的安装和注册 2. 本地网页发布2.1.Cpolar临时数据隧道2.2.Cpolar稳定隧道(云端设置)2.3.Cpolar稳定隧道(本地设置) 3.公网访问测试总结 前言 在国内互…

可靠又稳定些的微信管理系统

微信管理系统 --- 简单点说就是:微信的管理和营销系统。再通俗一些就是:利用微信与管理营销相结合的一种新型的办公方式。 不用下载任何软件,不需要多部手机,对手机型号没有任何要求,不需要刷机等等,并且稳…

腾讯云4核8G云服务器租用价格选轻量还是CVM?性能如何?

腾讯云4核8G云服务器可以选择轻量应用服务器或CVM云服务器标准型S5实例,轻量4核8G12M服务器446元一年,CVM S5云服务器935元一年,相对于云服务器CVM,轻量应用服务器性价比更高,轻量服务器CPU和CVM有区别吗?性…

c高级 day4

实现一个对数组求和的函数,数组通过实参传递给函数 #!/bin/bashread -p "请输入数组:" -a arrfunction sum() {sum0for i in ${arr[*]}do((sumsumi))doneecho "数组和:"$sum }sum写一个函数,输出当前用户的uid和gid,并使…

【Java】过滤器和拦截器区别

文章目录 前言1、过滤器 (Filter)2、拦截器 (Interceptor)3、我们不一样3.1、实现原理不同3.2、使用范围不同3.3、触发时机不同 4、拦截的请求范围不同5、注入Bean情况不同6、控制执行顺序不同总结 前言 准备环境 我们在项目中同时配置 拦截器 和 过滤器。 1、过滤器 (Filter…

Nginx反向代理联动Tomcat实现多实例部署、动静分离、负载均衡

文章目录 1. 配置反向代理1.1 前置准备1.2 代理服务器配置1.3 真实服务器配置1.4 客户机配置 2. Tomcat 多实例部署2.1 部署JDK2.2 设置JDK环境变量2.3 部署Tomcat服务2.4 路径启动 3. Nginx联动Tomcat实现动静分离、负载均衡3.1 基本原理3.2 前置准备3.3 配置nginx1实现四层代…

2023.9.8 基于传输层协议 UDP 和 TCP 编写网络通信程序

目录 UDP 基于 UDP 编写网络通信程序 服务器代码 客户端代码 TCP 基于 TCP 编写网络通信程序 服务器代码 客户端代码 IDEA 打开 支持多客户端模式 UDP 特点: 无连接性:发送端和接收端不需要建立连接也可相互通信,且每个 UDP 数据包都…

sql注入基本概念

死在山野的风里,活在自由的梦里 sql注入基本概念 MYSQL基本语法union合并查询2个特性:order by 排序三个重要的信息 Sql Server MYSQL 基本语法 登录 mysql -h ip -u user -p pass基本操作 show databases; 查看数据库crea…

串行数据发送器

框图 THR:发送保持寄存器 定义了两种状态:空,满数据写入端口地址:00H状态读出端口地址:00H当THR不满时,可以向THR写入数据 TSR:发送移位寄存器 一旦TSR空而THR中有数据时,THR中的数…

Ubuntu服务器安装Nvidia显卡驱动各类失败问题的解决方案集合

前言 给实验室服务器安装显卡驱动,总是遇到各种各样的问题。故而专门开一个文章记录一下遇到的各类问题。 正常安装方法 在这里安装CUDA,选择最新版本后根据系统配置点选即可,会自动生成对应的链接,如下图。这里选runfile&…

Mysql join用法详解

本篇文章旨在详细讲解Mysql 中join的用法,并附上例题。 一. left join 首先附上图 这个查询语句最根本的是要找出A表中所有的行, 所以如图所示,A表整个被涂蓝 A与B交叉的那部分可以视为ON后所跟的条件 重点是: 如果A表中有一条…

C#学习 - 方法的定义、调用、调试

方法 方法&#xff08;Method&#xff09;是由C/C中的函数&#xff08;Function&#xff09;发展而来的 //C语言 #include <stdio.h> int Add(int x, int y) {return x y; }//函数 int main(void) {int a 4;int b 2;int c Add(a, b);printf("%d %d %d\n&quo…

mysql 删除索引 索引长度还在,数据内存 索引内存没有减少

在我们针对数据表进行了大量删除或者删除掉某个无用的索引之后&#xff0c;该表占的数据内存或者索引并没有明显的变换&#xff0c;这是因为删除操作后在数据文件中留下碎片所致。 查看数据与索引 SELECTTABLE_NAME,concat( TRUNCATE ( data_length / 1024 / 1024, 2 ), MB …