分类归档 科研工具

bossliu 通过bossliu

分形分析软件FracLab计算Box-counting分形维数


1.下载安装FracLab工具箱

2.数据预处理

把感兴趣区域与背景区分开来以降低噪声干扰,也即是把RGB图像从一个三维的数据转换为一个二值的二维矩阵。

分形分析软件FracLab计算Box-counting分形维数插图
左侧双击你要操作的图片完成数据的导入,可以在右侧工作区看到导入后的矩阵数据

对导入后的矩阵数据进行操作,将其转化为二值数据,这里有一个我自己写的函数进行相应的转换操作:

function z = r2gb( data )
%函数的功能为将一个rgb图像数据转化为灰度数据、二值数据
 
gray_data = rgb2gray(data);
%把RGB图像(三维矩阵)转化成灰度图像,得到的gray_data是一个八阶灰度的二维矩阵
%这里的gray_data是uint8类型的数据,是不能被fraclab处理的
 
threshold = graythresh(gray_data);%自动确定二值化阈值
binary_data = im2bw(gray_data,threshold);%对图像进行二值化
%把一个灰度图像转化成二值图像,这里得到的binary_data是一个逻辑型数据,无法被FracLab识别
 
binary_data_double = double(binary_data);%把逻辑型数据转化成双精度的数值型数据以用于后续的操作
binary_data_reverse_double = double(~binary_data);%对二值数据求反并转换为数值型数据
 
%%=======================================这里很重要======================================
%之所以要求反,是因为对于二值图像而言白色区域为1,黑色区域为0
%很多图像的图像特征是用黑色曲线来表征的,这样的图像经过二值化之后数值为1的点对应的是背景
%导致最终计算得到的是背景的分形维数而不是我们想要的曲线的分形维数,这种情况下需要对图像进行求反
%后续的数据操作对象为binary_data_reverse
%如果图像本身就是用白色曲线来表征它的特征,则后续的数据操作对象为binary_data
%%=======================================这里很重要======================================
 
figure
subplot(2,2,1);imshow(gray_data);title('Grayscale Image');
subplot(2,2,2);imshow(binary_data_double);title('Binary Image');
subplot(2,2,3);imshow(binary_data_reverse_double);title('Reversal Binary Image');
 
assignin('base','binary_data_reverse',binary_data_reverse_double)
assignin('base','gray_data',gray_data)
assignin('base','binary_data',binary_data_double)
%将需要的中间变量呈现在工作区
end
分形分析软件FracLab计算Box-counting分形维数插图(1)
这样的图片不需要求反

对输入的图像数据进行操作:

r2gb(tri_8_610)%我这里用到的图像是一个迭代了八次的谢尔宾斯基三角形(理论分形维数为lg3/lg2≈1.58)

在工作区会生成如下三个变量

分形分析软件FracLab计算Box-counting分形维数插图(2)

3.维数计算

  • 在命令行窗口输入如下命令: fraclab
  • 调出fraclab的交互界面
分形分析软件FracLab计算Box-counting分形维数插图(3)
fraclab界面

点击workspace,选择要处理的数据,这里选择的是binary_data_reverse(数据的选择参考上面程序里的注释),点击上面菜单栏里的Dimensions–Box dimension:box method–Binary Data,出现如下界面:

分形分析软件FracLab计算Box-counting分形维数插图(4)

这里说明一下这里面各个参数的含义:

(1)Box Sizes

max size和min size分别是盒子的大小的上下限,是根据图片大小来自动计算的,这个一般不用修改;

# of box 是在上面那个上下限里选择多少种不同大小的盒子,也即是最后得到的图上的散点数;

progressio 是盒子大小的递进关系,幂律or线性,选择幂律得到的散点之间的间距是均匀的;

Aspect Ratio 选择默认即可;

(2)Regression

Type:散点图曲线拟合方式;

Range:自选或是自动,自选的话(图中的选项)点击“compute”会出来一个折线图由你自己选择拟合曲线的范围,如下图所示:

分形分析软件FracLab计算Box-counting分形维数插图(5)

例如我选择如下图所示的范围,在图形的上部会显示估计得到的维数,相关系数和最大误差:

分形分析软件FracLab计算Box-counting分形维数插图(6)

如果是自动的话,会由程序为你选择一个范围得到分形维数并在右下角显示:

分形分析软件FracLab计算Box-counting分形维数插图(7)

可以看到计算得到的维数值与理论值1.58还是很接近的。

bossliu 通过bossliu

分形分析软件

☆FracLab:

MATLAB的第三方工具箱(似乎也可以独立使用?),是一个基于分形和多重分形方法的信号和图像处理的工具箱,自1998年推出以来,直到2017年一直有更新,最新的版本为FracLab 2.2(适用MATLAB 2015a及以上),软件著作权在INRIA(法国国家信息与自动化研究所)。面向学术用途免费,商业用途需获得授权。

主要功能:(1)分形分析:计算维数,Holder指数以及多重分形谱;(2)信号处理:估计、检测、去噪、建模、分离、分类、合成。

官网:https://project.inria.fr/fraclab/

这个是在文献中引用最多的(就我查到的文章而言),我们实验室这边平常主要跟MATLAB打交道,所以目前主要用的是这个软件,这个软件用到的盒维数法在计算之前先对图形的长宽进行坐标的归一化,软件只能识别二值图像。


☆FracLac:

ImageJ软件的一个分形插件,第一个版本在2002年推出,最新的版本似乎是2015年发布的。面向公众免费。

主要功能:计算盒维数、质量维数、局部分形维数(local fractal dimensions)、局部连接分形维数(local connected fractal dimensions)、多重分形谱、空隙度等的计算,同时还可以进行密度,跨度比(span ratio),circularity,convex hull(凸壳)等形态测定。

官网:https://imagej.nih.gov/ij/plugins/fraclac/fraclac.html

这个和FracLab是我见到的在文章中被使用最多的,因为ImageJ本身是一个图像处理的软件,所以FracLac可以借助ImageJ功能的便利实现快速的实现很多图像处理的操作。


BENOIT 和 BENOIT for Matlab

BENOIT是一个分形分析软件,可以用于计算分形维数和赫斯特指数(hurst
exponent),目前版本为Benoit 1.3,常规价格$249.00,学术用途价格$189.00。

BENOIT for Matlab是Matlab的一个分形分析工具箱,目前版本为BENOIT for Matlab 1.0(适用于Matlab 6.5及以上),常规价格$649.00,学术用途价格$489.00。

软件著作权归属 TruSoft Int’l Inc.,官网宣称BENOIT分形分析软件目前已经被50个国家的数百个大学和研究中心使用,包括美国国家地质调查局,西门子 Westinghouse,哥伦比亚大学,布朗大学,巴黎大学等。

主要功能:(1)计算自相似模式的分形维数方法主要有:盒维数(box
dimension),周长维数(perimeter-area dimension),信息维数(information dimension),质量维数(mass dimension),ruler dimension,3D 盒维数(仅BENOIT for Matlab可用);(2)计算自相仿轨迹的赫斯特指数和分形维数的方法:rescaled range analysis,功率谱分析(Power-spectral),roughness length,方差图(variogram),Wavelets(BENOIT for Matlab不可用);(3)大小、频率分形维数的估计方法:Fragmentation dimension(BENOIT for Matlab不可用)。

官网:http://www.trusoft-international.com/index.html


Fractalyse

可以用于计算图形的分形维数和多重分形谱,这个软件最初被开发用来计算城市建成区域的分形维数,软件著作权在ThéMA(地理研究实验室,由法国科学研究中心和 Universities of Franche-Comté and Burgundy联合建立),面向公众免费,目前最新的版本为Fractalyse2.4(2006年发布)。


VESGEN

全名为VESsel GENeration Analysis,是ImageJ的一个插件,由NASA Glenn Research Center发明,可以用于映射和量化血管的一些参数,包括血管长度,管径,密度,分叉点,分形维数等,2009年前后发布了第一个版本,同时期有两篇文章中说以后会公开这个软件,但目前能搜到的关于VESGEN的信息只在文献中有提到,在ImageJ的插件库中没有找到(但是库里有找到上面的FracLac插件)。

bossliu 通过bossliu

迅捷屏幕录像工具


点击访问官网


不管是别人制作的游戏视频还是部分的视频分享,我们总是会见到很多。但是有没有想过,其实这些我们也是可以动手进行制作的。笔者就是使用迅捷屏幕录像工具录制了一个又一个的视频,整个过程也是相对的简单易上手。

迅捷屏幕录像工具插图

打开软件后,依据自身情况来选择范围,格式、音频、画质等。

迅捷屏幕录像工具插图(1)

接着设置录制视频所保存的位置,不建议保存在C盘,可根据实际情况安装在D盘或者F盘,本作者安装在了D盘。

迅捷屏幕录像工具插图(2)

完成了上述的设置之后,就可以单击“开始录制”按钮来录制桌面屏幕了。

迅捷屏幕录像工具插图(3)

录制完视频后,单击“停止键”,即生成录制的视频,打开所保存的文件夹,就可以看到录制好的视频了。

Wendy Huang 通过Wendy Huang

窗口管理器-分屏软件MaxTo

软件简介 

MaxTo是一个窗口管理器,允许您定义屏幕区域,窗口会自动最大化,像素完美的窗口安排。充分利用屏幕空间。使用热键快速移动窗口。因为MaxTo你可以从你的电脑屏幕得到更多。理想的程序员,图形设计师和其他需要有多个窗口的人需要一次可见多个。使用您的宽屏所有的空间。拆分你的大显示器成较小的。使用所有你的显示器。

功能特点 

1.控制你的窗口 。
2.定义你自己的区域 。
3.快速排列窗口,以你想要的方式。 
4。决定你的窗口应如何安排。每当一个窗口最大化,它最大化到其中鼠标指针的区域。您也可以使用键盘快捷键来快速移动窗口到正确的区域。你决定你的窗口应如何安排。每当一个窗口最大化,它最大化到其中鼠标指针的区域。 您也可以使用键盘快捷键来快速移动窗口到正确的区域。

软件特色

1.MaxTo很小 
大量的精力已投入制作MaxTo尽可能小。并且运行时使用很少的内存,MaxTo不紧张你的系统。 
2.使用所有显示器 
MaxTo具有强大的多显示器支持。它工作于一个,两个,甚至是18个的显示器! 
3.专为Windows制作 

Wendy Huang 通过Wendy Huang

高分辨率截图软件FastStone Capture

FastStone Capture 是所有截图软件中小编感觉最好用的截图软件!它集成了图像浏览、编辑和截图功能,支持包括BMP, JPEG, JPEG 2000, GIF, PNG, PCX, TIFF, WMF, ICO 和TGA在内的所有主流图片格式,其独有的光滑和毛刺处理技术让图片更加清晰,提供缩放、旋转、减切、颜色调整功能。只要点点鼠标就能随心抓取屏幕上的任何东西,拖放支持可以直接从系统、浏览器或其他程序中导入图片,收藏夹功能让你能更好的从eNet收集更多精彩图片。

根据当前要操作的对象的形状,FastStone Capture支持六种捕捉方式:捕捉活动窗口、捕捉窗口/对象、捕捉矩形区域、捕捉手绘区域、捕捉整个屏幕、捕捉滚动窗口。它还支持屏幕录像、屏幕放大镜、拾取屏幕颜色、屏幕标尺、快捷键等诸多实用功能。

FastStone Capture 在对捕捉后图像的处理方式也很丰富,可以选择:在编辑器打开;存入剪贴板、文件;自动保存文件、发送到打印机、邮件、WORD、Powerpoint、网络FTP等。存入文件时,可以由通过文件名称模板自由定制文件名,可以保存为BMP、GIF、JPG、PNG、TIF、PDF格式,输出文件夹位置也可以自己设定。