基于改进Sarkar-Chaudhuri算法的图像差分盒维数计算系统
项目介绍
本项目实现了一种改进的差分盒维数计算方法,针对传统Sarkar-Chaudhuri算法进行了精度优化。通过引入基于灰度平均值的像素贡献统计机制,系统能够更精确地估计图像的分形维数。该方法适用于纹理分析、图像复杂度评估等计算机视觉领域,为图像特征提取提供了可靠的分数维度量工具。
功能特性
- 改进的像素贡献统计:通过计算窗口内每个像素相对于平均灰度的贡献值,替代传统的极值统计方法
- 多尺度窗口分割:支持自定义尺度序列,自动适配不同图像尺寸
- 精度验证机制:提供拟合相关系数R²作为质量评估指标
- 可视化支持:生成拟合过程散点图,便于结果分析和验证
- 参数可配置:支持尺度序列和窗口缩放因子的灵活设置
使用方法
基本调用
% 读取灰度图像
img = imread('texture.png');
% 计算差分盒维数
[dimension, R_squared] = main(img);
高级配置
% 自定义尺度参数
scales = [2, 4, 6, 8, 10];
% 设置缩放因子为0.8
scaling_factor = 0.8;
% 带参数调用
[dimension, R_squared, Nr_data, fit_plot] = main(img, scales, scaling_factor);
输出说明
dimension: 图像的差分盒维数值(双精度浮点数)R_squared: 线性拟合的确定系数(0-1之间的数值)Nr_data: 各尺度下的N(r)统计值数组fit_plot: 拟合散点图句柄(可选可视化输出)
系统要求
- 平台: MATLAB R2018b或更高版本
- 工具包: 需要图像处理工具箱(Image Processing Toolbox)
- 内存: 建议至少4GB RAM(处理大图像时需更多内存)
- 输入格式: 支持uint8或double类型的二维灰度矩阵
文件说明
主程序文件完成了系统的核心计算流程,包括图像尺度分割、窗口灰度统计、像素贡献分析、最小二乘拟合等关键操作。具体实现了多尺度窗口的自动生成、基于平均值比较的像素分类累加、改进型统计量的计算以及分数维估计值的回归拟合等功能模块。