当前位置: 首页 > news >正文

基于MATLAB的图像融合评价指标实现方案

基于MATLAB的图像融合评价指标实现方案,包含PSNR、SSIM、MI、AG、SF等核心指标的代码实现及原理详解


一、核心指标实现代码

1. 峰值信噪比(PSNR)

function psnr_val = calculate_psnr(img1, img2)% 计算峰值信噪比(单位:dB)if size(img1,3) == 3img1 = rgb2gray(img1);img2 = rgb2gray(img2);endimg1 = im2double(img1);img2 = im2double(img2);mse = mean((img1(:) - img2(:)).^2);if mse == 0psnr_val = Inf;elsemax_pixel = 1; % 归一化到[0,1]范围psnr_val = 10 * log10(1 / mse);end
end

2. 结构相似性指数(SSIM)

function ssim_val = calculate_ssim(img1, img2)% 计算结构相似性指数if size(img1,3) == 3img1 = rgb2gray(img1);img2 = rgb2gray(img2);endimg1 = im2double(img1);img2 = im2double(img2);[m, n] = size(img1);window = fspecial('gaussian', [11 11], 1.5);K = [0.01 0.03];L = 1;C1 = (K(1)*L)^2;C2 = (K(2)*L)^2;mu1 = filter2(window, img1, 'valid');mu2 = filter2(window, img2, 'valid');mu1_sq = mu1.^2;mu2_sq = mu2.^2;mu1_mu2 = mu1 .* mu2;sigma1_sq = filter2(window, img1.^2, 'valid') - mu1_sq;sigma2_sq = filter2(window, img2.^2, 'valid') - mu2_sq;sigma12 = filter2(window, img1 .* img2, 'valid') - mu1_mu2;numerator = (2*mu1_mu2 + C1) .* (2*sigma12 + C2);denominator = (mu1_sq + mu2_sq + C1) .* (sigma1_sq + sigma2_sq + C2);ssim_map = numerator ./ denominator;ssim_val = mean(ssim_map(:));
end

3. 互信息(MI)

function mi_val = calculate_mutual_information(img1, img2, num_bins)% 计算互信息量if size(img1,3) == 3img1 = rgb2gray(img1);img2 = rgb2gray(img2);endimg1 = im2double(img1);img2 = im2double(img2);[counts1, ~] = imhist(img1, num_bins);[counts2, ~] = imhist(img2, num_bins);[joint_counts, ~, ~] = imhist2(img1, img2, num_bins);p1 = counts1 / numel(img1);p2 = counts2 / numel(img2);p_joint = joint_counts / numel(img1);H1 = -sum(p1(p1 > 0) .* log2(p1(p1 > 0)));H2 = -sum(p2(p2 > 0) .* log2(p2(p2 > 0)));H_joint = -sum(p_joint(p_joint > 0) .* log2(p_joint(p_joint > 0)));mi_val = H1 + H2 - H_joint;
end

4. 平均梯度(AG)

function ag_val = calculate_average_gradient(img)% 计算平均梯度(清晰度指标)if size(img,3) == 3img = rgb2gray(img);endimg = im2double(img);[dx, dy] = gradient(img);gradient = sqrt(dx.^2 + dy.^2);ag_val = mean(gradient(:));
end

5. 空间频率(SF)

function sf_val = calculate_spatial_frequency(img)% 计算空间频率if size(img,3) == 3img = rgb2gray(img);endimg = im2double(img);[rows, cols] = size(img);RF = 0;CF = 0;for i = 1:rowsfor j = 2:colsRF = RF + (img(i,j) - img(i,j-1))^2;endendfor j = 1:colsfor i = 2:rowsCF = CF + (img(i,j) - img(i-1,j))^2;endendsf_val = sqrt(RF/(rows*cols) + CF/(rows*cols));
end

二、综合评估函数

function metrics = evaluate_fusion(reference, fused, source1, source2)% 综合评估融合质量metrics = struct();% 转换为双精度浮点型reference = im2double(reference);fused = im2double(fused);source1 = im2double(source1);source2 = im2double(source2);% 计算各项指标metrics.PSNR = calculate_psnr(reference, fused);metrics.SSIM = calculate_ssim(reference, fused);metrics.MI = calculate_mutual_information(source1, fused, 256) + ...calculate_mutual_information(source2, fused, 256);metrics.AG = calculate_average_gradient(fused);metrics.SF = calculate_spatial_frequency(fused);metrics.STD = std(fused(:));
end

三、使用示例

% 读取图像
reference = imread('source1.jpg');
source2 = imread('source2.jpg');
fused = imread('fused_image.jpg');% 计算指标
results = evaluate_fusion(reference, fused, source1, source2);% 输出结果
fprintf('=== 融合质量评估结果 ===
');
fprintf('PSNR: %.4f dB\n', results.PSNR);
fprintf('SSIM: %.4f\n', results.SSIM);
fprintf('MI: %.4f\n', results.MI);
fprintf('AG: %.4f\n', results.AG);
fprintf('SF: %.4f\n', results.SF);
fprintf('STD: %.4f\n', results.STD);

四、关键参数说明

指标名称 取值范围 最佳值 物理意义
PSNR [0, ∞) >30 dB 图像失真程度
SSIM [0, 1] 接近1 结构相似性程度
MI [0, ∞) 越高越好 信息保留程度
AG [0, ∞) 越高越好 图像清晰度
SF [0, ∞) 越高越好 灰度变化频率
STD [0, 1] 越高越好 细节丰富程度

参考代码 图像融合的评价指标程序代码 www.youwenfan.com/contentcnk/79017.html

五、注意事项

  1. 输入图像需为相同尺寸
  2. 彩色图像建议先转换为灰度图
  3. MI计算需保证图像数据类型为双精度
  4. 多指标综合评估时建议加权处理
http://www.jsqmd.com/news/30897/

相关文章:

  • react table 根据某个字段合并多列
  • 2025 年三维扫描仪厂家最新推荐排行榜:严选五大优质品牌,覆盖工业 / 医疗 / 文博等多领域需求
  • 2025年靠谱的陶瓷纤维纸厂家推荐及选择指南
  • 2025年热门的钢结构酒店设计与加工厂家实力及用户口碑排行榜
  • 2025 年闪测仪厂家最新推荐榜,覆盖多类型设备且聚焦品牌技术实力与市场口碑深度解析高精度闪测仪/大量程闪测仪/复合式闪测仪公司推荐
  • 2025年正规的汽车配件弹簧厂家推荐及采购参考
  • 2025年专业的PP防撞碳晶板厂家实力及用户口碑排行榜
  • 2025 年南康广告公司口碑最新推荐榜:创意与实效兼具的企业深度盘点 —— 展会设计、装饰、发光字、广告牌、包装设计优质服务商最新推荐
  • fiddler自动转发
  • 2025国内外运维监控厂商选型决策:聚焦国产化与信创,国产标杆如何突围?
  • 2025年评价高的智慧储能柜厂家最新推荐排行榜
  • 我咨询洛阳机电学校,学plc
  • 2025年有实力无花板风管加工厂家实力及用户口碑排行榜
  • 2025 最新散热片厂家排行榜:品牌权威推荐,聚焦品质与多领域适配实力插齿散热片/插片散热片/电子散热片/水冷散热片厂家推荐
  • 2025年11月中国权威信息公布:高压氧舱供应厂家推荐榜单【鼎亿康】
  • http和tcp握手挥手
  • 2025年11月中国离婚财产分割律师推荐榜单:权威律师综合对比与选择指南
  • 2025年下半年高压氧舱抗衰老设备生产厂家推荐排行榜终极解析:鼎亿康
  • 高效安全的同步软件推荐,助力企业文件传输管理
  • 2025年优秀的耐候尼龙改性颗粒厂家推荐及选择指南
  • 2025年耐用的车铣复合用户好评厂家排行
  • 2025年专业的液体喷砂机实力厂家TOP推荐榜
  • 2025年11月石墨制品厂家性能排行:聚焦高端应用场景对比
  • 如何查看Linux系统版本?
  • 2025年诚信的热镀锌钢零售商信赖度权威榜
  • 2025年爱格授权的全屋定制榻榻米厂家选购指南与推荐
  • 2025年口碑好的火山岩火山石厂家最新用户好评榜
  • 2025年实木电视柜制造企业权威推荐榜单:实木酒柜/实木家具/实木衣柜源头厂家精选
  • 2025年11月中国AI关键词排名优化公司推荐榜单:五家权威服务商综合对比分析
  • cron表达式总结