Fraclab工具包计盒维数程序实现

实现了Matlab Fraclab Toolbox计盒维数方法

方法一:Binary Data

图像输入为二值图 (dpi=100  640x480)


DimensionCalculation.m  计算图像盒维数

%计算图像盒维数 
function [boxdim]=DimensionCalculation(frame)
reg=0;  %-1指定范围输出维度,0计算线性回归时考虑所有框尺寸,没有图,2考虑所有框的尺寸,有图,输出维数
Waitbar=0; %1输出等候栏,0不输出
Size=[1/2,1/4,1/8,1/16,1/32,1/64,1/128,1/256,1/512];
Ratio = [];%[1 1]
Axes = [];%[0 1; 0 1]
%二值图boxdim_binaire 灰度图boxdim_classique
[boxdim,Nboxes,handefig] = boxdim_binaire(frame,Size,Ratio,Axes,Waitbar,reg);%fraclab函数
%close(figure(gcf));


end

readImage.m 实现批量读取并处理图像

files = dir(fullfile('C:\\Users\\Administrator\\Desktop\original\\','*.jpg'));
lengthFiles = length(files);
for i = 1:lengthFiles;
    Img = imread(strcat('C:\\Users\\Administrator\\Desktop\\original\\',files(i).name));%文件所在路径
    Img = rgb2gray(Img);%将RGB图变为灰度图
    thresh = graythresh(Img); %自动确定阈值
    Img = im2bw(Img,thresh); %对图像二值化\
    [a] = DimensionCalculation(Img);
    fprintf('盒维数%.4f\t',a);
    fprintf('\t');
    disp(files(i).name);
    fid = fopen('C:\\Users\\Administrator\\Desktop\\test\\test.txt','a');
    fprintf(fid,'盒维数%.4f \n',a);
    fclose(fid);
end

方法二:Graysclae data

图像输入为灰度图


DimensionCalculation.m

%计算图像盒维数 
function [boxdim]=DimensionCalculation(frame)
reg=0;  %-1指定范围输出维度,0计算线性回归时考虑所有框尺寸,没有图,2考虑所有框的尺寸,有图,输出维数
Waitbar=0; %1输出等候栏,0不输出
Size=[1/2,1/4,1/8,1/16,1/32,1/64,1/128,1/256,1/512];
Ratio = [];%[1 1]
Axes = [];%[0 1; 0 1]
%二值图boxdim_binaire 灰度图boxdim_classique
[boxdim,Nboxes,handefig,ags] = boxdim_classique(frame,Size,Ratio,Axes,Waitbar,reg);%fraclab函数
%close(figure(gcf));


end

readImage.m

files = dir(fullfile('C:\\Users\\Administrator\\Desktop\original\\','*.jpg'));
lengthFiles = length(files);
for i = 1:lengthFiles;
    Img = imread(strcat('C:\\Users\\Administrator\\Desktop\\original\\',files(i).name));%文件所在路径
    Img = rgb2gray(Img);%将RGB图变为灰度图
    thresh = graythresh(Img); %自动确定阈值
    Img = im2bw(Img,thresh); %对图像二值化\
    [a] = DimensionCalculation(Img);
    fprintf('盒维数%.4f\t',a);
    fprintf('\t');
    disp(files(i).name);
    fid = fopen('C:\\Users\\Administrator\\Desktop\\test\\test.txt','a');
    fprintf(fid,'盒维数%.4f \n',a);
    fclose(fid);
end

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值