DimensionCalculation.m
%计算图像盒维数
function [boxdim]=DimensionCalculation(frame)
reg=0; %-1指定范围输出维度,0计算线性回归时考虑所有框尺寸,没有图,2考虑所有框的尺寸,有图,输出维数
Waitbar=0; %1输出等候栏,0不输出
Sizes=[1/2,1/4,1/8,1/16,1/32,1/64,1/128,1/256,1/512];
Size = [];
Ratio = [];%[1 1]
Axes = [];%[0 1; 0 1]
%二值图boxdim_binaire 灰度图boxdim_classique
[boxdim,Nboxes,handefig,bound] = boxdim_binaire(frame,Sizes,Ratio,Axes,Waitbar,reg,'ls');%fraclab函数
%close(figure(gcf));
end
readImage.m
%导入原始图片
files1 = dir(fullfile('C:\Users\Administrator\Desktop\测试盒维数\ori\','*.jpg'));
lengthFiles = length(files1);
genArr = [];
for i = 1:lengthFiles;
Img = imread(strcat('C:\Users\Administrator\Desktop\测试盒维数\ori\',files1(i).name));%文件所在路径
Img = rgb2gray(Img);%将RGB图变为灰度图
thresh = graythresh(Img); %自动确定阈值
Img = im2bw(Img,thresh); %对图像二值化\
[a] = DimensionCalculation(Img);
genArr(i) = a;
fprintf('盒维数%.4f\t',a);
fprintf('\t');
disp(files1(i).name);
fid = fopen('C:\\Users\\Administrator\\Desktop\\test\\test.txt','a');
fprintf(fid,'盒维数%.4f \n',a);
fclose(fid);
end
%导入生成图片
files2 = dir(fullfile('C:\Users\Administrator\Desktop\测试盒维数\gen\','*.jpg'));
oriArr =[];
for i = 1:lengthFiles;
Img = imread(strcat('C:\Users\Administrator\Desktop\测试盒维数\gen\',files2(i).name));%文件所在路径
Img = rgb2gray(Img);%将RGB图变为灰度图
thresh = graythresh(Img); %自动确定阈值
Img = im2bw(Img,thresh); %对图像二值化\
[a] = DimensionCalculation(Img);
oriArr(i) = a;
fprintf('盒维数%.4f\t',a);
fprintf('\t');
disp(files2(i).name);
fid = fopen('C:\\Users\\Administrator\\Desktop\\test\\test.txt','a');
fprintf(fid,'盒维数%.4f \n',a);
fclose(fid);
end
[h,p,ci] = ttest2(oriArr,genArr)
genArr
oriArr
mean(genArr)
mean(oriArr)
涉及知识细节参考前几篇博客。