% 读取数据 pwr = freadbkj('../rmli/rmli.ave', 5902, 'float32', 'b'); % 原始干涉图数据 phase_complex = freadbkj('20091226_20100515.diff', 5902, 'cpxfloat32', 'b'); cc = freadbkj('20091226_20100515.cc', 5902, 'float32', 'b'); % ADF处理后的干涉图数据 adf_phase_complex = freadbkj('20091226_20100515.adf.diff', 5902, 'cpxfloat32', 'b'); adf_cc = freadbkj('20091226_20100515.adf.cc', 5902, 'float32', 'b'); % 计算cc非零均值 % 方法1:排除精确为零的值 cc_nonzero = cc(cc ~= 0); adf_cc_nonzero = adf_cc(adf_cc ~= 0); % 方法2:排除小于某个小阈值的值(更安全,避免浮点数误差) threshold = 1e-10; cc_valid = cc(cc > threshold); adf_cc_valid = adf_cc(adf_cc > threshold); % 计算均值 mean_cc = mean(cc_valid(:)); mean_adf_cc = mean(adf_cc_valid(:)); % 显示计算结果 fprintf('==================== CC统计信息 ====================\n'); fprintf('原始CC数据:\n'); fprintf(' 总点数: %d\n', numel(cc)); fprintf(' 非零点数: %d\n', numel(cc_valid)); fprintf(' 非零均值: %.4f\n', mean_cc); fprintf(' 最小值: %.4f\n', min(cc(:))); fprintf(' 最大值: %.4f\n', max(cc(:))); fprintf(' 零值比例: %.2f%%\n', sum(cc(:) <= threshold)/numel(cc)*100); fprintf('\nADF处理后CC数据:\n'); fprintf(' 总点数: %d\n', numel(adf_cc)); fprintf(' 非零点数: %d\n', numel(adf_cc_valid)); fprintf(' 非零均值: %.4f\n', mean_adf_cc); fprintf(' 最小值: %.4f\n', min(adf_cc(:))); fprintf(' 最大值: %.4f\n', max(adf_cc(:))); fprintf(' 零值比例: %.2f%%\n', sum(adf_cc(:) <= threshold)/numel(adf_cc)*100); fprintf('\nADF处理改善: %.2f%%\n', (mean_adf_cc - mean_cc)/mean_cc*100); fprintf('==================================================\n'); % 创建图形窗口 figure('Position', [100, 100, 1400, 600]); %% 子图1:原始干涉相位 subplot(1, 2, 1); % 创建灰度功率图作为背景 gray_pwr = mat2gray(pwr, [0 25000]); % 归一化到[0,1] gray_rgb = repmat(gray_pwr, [1, 1, 3]); % 转为RGB % 创建彩色相位图(原始) phase_norm = (angle(phase_complex) + pi) / (2*pi); % 归一化到[0,1] jet_cmap = jet(256); phase_idx = round(phase_norm * 255) + 1; phase_idx(phase_idx < 1) = 1; phase_idx(phase_idx > 256) = 256; phase_rgb = ind2rgb(phase_idx, jet_cmap); % 创建alpha通道(基于cc值) alpha_data = ones(size(cc)); alpha_data(cc < 0.35) = 0; % cc小于0.35的区域透明 % 混合图像 blended_rgb = zeros(size(gray_rgb)); for k = 1:3 blended_rgb(:,:,k) = gray_rgb(:,:,k) .* (1 - alpha_data) + ... phase_rgb(:,:,k) .* alpha_data; end % 显示混合图像 imagesc(blended_rgb); axis image; title_str = sprintf('原始干涉相位 (cc>0.35显示)\ncc均值: %.3f', mean_cc); title(title_str, 'FontSize', 12, 'FontWeight', 'bold'); xlabel('距离向'); ylabel('方位向'); % 添加相位颜色条 c1 = colorbar('Location', 'eastoutside'); colormap(hsv); caxis([-pi pi]); ylabel(c1, '相位 (弧度)'); %% 子图2:ADF处理后的干涉相位 subplot(1, 2, 2); % 创建ADF处理后的彩色相位图 adf_phase_norm = (angle(adf_phase_complex) + pi) / (2*pi); % 归一化到[0,1] adf_phase_idx = round(adf_phase_norm * 255) + 1; adf_phase_idx(adf_phase_idx < 1) = 1; adf_phase_idx(adf_phase_idx > 256) = 256; adf_phase_rgb = ind2rgb(adf_phase_idx, jet_cmap); % 创建ADF的alpha通道(基于adf_cc值) adf_alpha_data = ones(size(adf_cc)); adf_alpha_data(adf_cc < 0.35) = 0; % adf_cc小于0.35的区域透明 % 混合图像(使用相同的灰度背景) adf_blended_rgb = zeros(size(gray_rgb)); for k = 1:3 adf_blended_rgb(:,:,k) = gray_rgb(:,:,k) .* (1 - adf_alpha_data) + ... adf_phase_rgb(:,:,k) .* adf_alpha_data; end % 显示混合图像 imagesc(adf_blended_rgb); axis image; title_str = sprintf('ADF处理后干涉相位 (cc>0.35显示)\ncc均值: %.3f', mean_adf_cc); title(title_str, 'FontSize', 12, 'FontWeight', 'bold'); xlabel('距离向'); ylabel('方位向'); % 添加相位颜色条 c2 = colorbar('Location', 'eastoutside'); colormap(hsv); caxis([-pi pi]); ylabel(c2, '相位 (弧度)'); % 添加总标题 sgtitle(sprintf('干涉相位对比 (cc阈值=0.35)\n原始cc均值: %.3f vs ADF处理后cc均值: %.3f', ... mean_cc, mean_adf_cc), 'FontSize', 14, 'FontWeight', 'bold'); % 调整布局 set(gcf, 'Color', 'white'); %% 可选:创建CC分布的对比图 figure('Position', [100, 100, 800, 600]); % 子图1:CC直方图对比 subplot(2, 2, 1); histogram(cc_valid, 50, 'FaceColor', 'b', 'EdgeColor', 'none', 'Normalization', 'probability'); hold on; histogram(adf_cc_valid, 50, 'FaceColor', 'r', 'EdgeColor', 'none', 'Normalization', 'probability', 'FaceAlpha', 0.5); xlabel('CC值'); ylabel('概率'); title('CC分布对比 (排除零值)'); legend({'原始CC', 'ADF CC'}, 'Location', 'best'); grid on; % 子图2:CC统计箱线图 subplot(2, 2, 2); boxplot([cc_valid(:); adf_cc_valid(:)], ... [ones(size(cc_valid(:))); 2*ones(size(adf_cc_valid(:)))], ... 'Labels', {'原始CC', 'ADF CC'}); ylabel('CC值'); title('CC统计箱线图'); grid on; % 子图3:CC均值对比柱状图 subplot(2, 2, 3); bar([mean_cc, mean_adf_cc]); set(gca, 'XTickLabel', {'原始CC', 'ADF CC'}); ylabel('CC均值'); title('CC均值对比'); ylim([0, max([mean_cc, mean_adf_cc])*1.1]); grid on; % 在柱状图上添加数值标签 for i = 1:2 if i == 1 value = mean_cc; else value = mean_adf_cc; end text(i, value + max([mean_cc, mean_adf_cc])*0.02, ... sprintf('%.3f', value), ... 'HorizontalAlignment', 'center', 'FontWeight', 'bold'); end % 子图4:零值比例对比 subplot(2, 2, 4); zero_ratio_orig = sum(cc(:) <= threshold)/numel(cc)*100; zero_ratio_adf = sum(adf_cc(:) <= threshold)/numel(adf_cc)*100; bar([zero_ratio_orig, zero_ratio_adf]); set(gca, 'XTickLabel', {'原始CC', 'ADF CC'}); ylabel('零值比例 (%)'); title('零值比例对比'); grid on; sgtitle('CC统计分析对比', 'FontSize', 14, 'FontWeight', 'bold');滤波前后对比图
张小明
前端开发工程师
基于贝叶斯算法优化BP神经网络(BO-BP/Bayes-BP)的数据单变量时序预测 Matlab
目录 1、代码简介 2、代码运行结果展示 3、代码获取 1、代码简介 基于贝叶斯算法优化BP神经网络(BO-BP/Bayes-BP)的数据单变量时序预测 Matlab代码 程序已经调试好,无需更改代码替换数据集即可运行!!!数据为电力数据…
狂揽23.5k Star!我用这个开源神器,拖拉拽3分钟就撸好一个AI Agent
AI 时代,谁都想构建一个自己的 AI 应用,比如一个能读取 PDF 内容并回答问题的机器人,或者一个自动生成营销文案的工具。但一想到要跟 LangChain、API 接口和复杂的 Python 代码打交道,我就头皮发麻。难道不懂代码,就注…
基于SpringBoot+Vue的甘肃非物质文化网站管理系统设计与实现【Java+MySQL+MyBatis完整源码】
摘要 非物质文化遗产作为中华优秀传统文化的重要组成部分,承载着民族的历史记忆和文化精髓。甘肃省拥有丰富的非物质文化遗产资源,如兰州太平鼓、庆阳香包、临夏砖雕等,这些文化瑰宝亟待数字化保护和传承。随着信息技术的快速发展࿰…
SQLi-Labs搭建及通关
**在 Windows 电脑上安装 sqlmap 并搭建 SQLi-Labs,需要先配置Python 环境(支撑 sqlmap)和XAMPP 环境(集成 ApacheMySQLPHP,支撑 SQLi-Labs)。 一、工具下载: 1、Python(sqlmap 依赖…
Go 语言的“舒适区”:为何在这张“鄙视链”金字塔中,Go 仅次于 C?
大家好,我是Tony Bai。最近,一张“编程语言分级图”在技术社区引发大家热议。它没有参考 TIOBE 排名,也不看 GitHub Star 数,而是完全基于一种简单粗暴的价值观:谁最不折腾人?在这张金字塔中,C …
【光子AI 2026 企业级 Agent 架构指南】别再把 Skill 当 Tool:Agent Skills × MCP 企业级落地全指南(最新定义澄清 + 场景大全 + 选型决策树+安全工程清单)
文章目录 拒绝“手搓”Agent:2026企业级架构指南——彻底搞懂 Agent Skills 与 MCP 的边界与选型 🚀 引言:AI 开发的“草莽时代”结束了 第一部分:正本清源——最新官方定义解读 1. Agent Skills:让 Agent 变“专家”的文件夹 2. MCP:AI 应用的“USB-C 接口” 第二部分:…