news 2026/3/17 13:29:10

滤波前后对比图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
滤波前后对比图
% 读取数据 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');

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 2:30:19

前后端分离教师工作量管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

摘要 随着教育信息化的快速发展&#xff0c;高校教师工作量管理逐渐从传统的手工记录向数字化、智能化转型。传统管理方式存在效率低下、数据易丢失、统计不准确等问题&#xff0c;难以满足现代高校对教师工作量精细化管理的需求。教师工作量管理系统通过信息化手段实现工作量计…

作者头像 李华
网站建设 2026/3/16 6:18:13

自定义封装tabs,超出显示上下翻页按钮

效果展示&#xff1a;未超出&#xff1a;超出&#xff1a;代码&#xff1a;<template><div class"custom-tabs"><!-- 左侧翻页按钮 --><div class"scroll-btn left-btn" :class"{ disabled: !canScrollLeft }" click"…

作者头像 李华
网站建设 2026/3/16 6:02:40

自定义tabs(支持横向/竖向排列)

效果展示&#xff1a;组件代码&#xff1a;CustomTabs.vue组件代码如下&#xff1a;<template><div class"custom-tabs" :class"[tabs-${type}, { tabs-vertical: type vertical }]"><!-- 横向布局 --><template v-if"type ho…

作者头像 李华
网站建设 2026/3/16 5:55:22

[特殊字符]_可扩展性架构设计:从单体到微服务的性能演进[20260107163924]

作为一名经历过多次系统架构演进的老兵&#xff0c;我深知可扩展性对Web应用的重要性。从单体架构到微服务&#xff0c;我见证了无数系统在扩展性上的成败。今天我要分享的是基于真实项目经验的Web框架可扩展性设计实战。 &#x1f4a1; 可扩展性的核心挑战 在系统架构演进过…

作者头像 李华
网站建设 2026/3/16 5:55:21

2025年广州市“人工智能+”典型案例集|附118页PDF文件下载

《广州市“人工智能”典型案例集》展示了AI在各领域的应用。关键点包括&#xff1a;AI制造&#xff1a;智能座舱、多模态大模型应用、PCB项目等&#xff0c;提升效率与精度。AI安全&#xff1a;智能机器狗、安全大模型、AI安管一体机等&#xff0c;保障公共安全。AI教育&#x…

作者头像 李华
网站建设 2026/3/16 0:51:24

NestJS 中动态 Swagger 参数文档的实现

在 NestJS 项目中,常常需要对 API 的参数进行验证和文档化。特别是在使用 UUID 作为参数时,确保参数格式的正确性以及在 Swagger 中正确展示这些参数是非常重要的。今天我们来探讨如何在 NestJS 中创建一个自定义装饰器来验证 UUID 格式,并动态生成 Swagger 文档。 背景介绍…

作者头像 李华