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

遥感图像处理实战:用Python+OpenCV实现同态滤波与小波变换去薄云(附完整代码与效果对比)

遥感图像去云实战Python实现同态滤波与小波变换的深度对比薄云覆盖是遥感图像处理中的常见挑战它会降低图像对比度、模糊地物细节直接影响后续的地物分类和环境监测精度。本文将带您用Python实现两种经典的去云算法——同态滤波与小波变换从原理到代码实现再到效果对比为您提供一套完整的解决方案。1. 环境准备与数据加载在开始算法实现前我们需要配置合适的Python环境。推荐使用Anaconda创建虚拟环境确保各库版本兼容conda create -n rs_cloud python3.8 conda activate rs_cloud pip install opencv-python numpy scipy pywavelets matplotlib对于测试数据可以使用Landsat系列卫星的单波段灰度图像。这里我们使用Landsat 8的Band 8全色波段作为示例import cv2 import numpy as np import matplotlib.pyplot as plt # 加载图像 img cv2.imread(landsat8_band8.tif, cv2.IMREAD_GRAYSCALE) if img is None: raise FileNotFoundError(请确保图像路径正确) # 显示原始图像 plt.figure(figsize(10, 8)) plt.imshow(img, cmapgray) plt.title(原始遥感图像含薄云) plt.colorbar() plt.show()常见问题排查如果遇到libtiff相关错误请安装pip install libtiff图像显示异常时检查图像位深16位图像需要归一化到0-2552. 同态滤波去云实现同态滤波基于图像的照度-反射率模型将图像分解为低频照度和高频反射率成分通过分别处理这两个成分来去除薄云干扰。2.1 算法原理同态滤波的核心步骤对数变换将乘性噪声转换为加性噪声傅里叶变换转换到频域进行处理滤波处理设计高斯滤波器组逆变换返回空间域滤波器设计公式 $$ H(u,v) (\gamma_H - \gamma_L)[1 - e^{-c(D^2(u,v)/D_0^2)}] \gamma_L $$其中$D(u,v)$频率点到中心的距离$D_0$截止频率$\gamma_L$, $\gamma_H$低频和高频增益2.2 Python实现def homomorphic_filter(img, gamma_l0.5, gamma_h2.0, c1.0, d030): 同态滤波去云实现 参数 img: 输入灰度图像 gamma_l: 低频增益 (0-1) gamma_h: 高频增益 (1) c: 锐化系数 d0: 截止频率 返回 去云后的图像 # 1. 对数变换 img_log np.log1p(img.astype(np.float32)) # 2. 傅里叶变换 rows, cols img.shape crow, ccol rows//2, cols//2 f np.fft.fft2(img_log) f_shift np.fft.fftshift(f) # 3. 创建滤波器 x np.linspace(-0.5, 0.5, cols) y np.linspace(-0.5, 0.5, rows) x, y np.meshgrid(x, y) d np.sqrt(x**2 y**2) h (gamma_h - gamma_l) * (1 - np.exp(-c * (d**2 / (d0**2)))) gamma_l # 4. 应用滤波 filtered f_shift * h # 5. 逆变换 f_ishift np.fft.ifftshift(filtered) img_back np.fft.ifft2(f_ishift) img_back np.abs(img_back) # 6. 指数变换 result np.expm1(img_back) result np.clip(result, 0, 255).astype(np.uint8) return result # 应用同态滤波 result_homo homomorphic_filter(img)2.3 参数优化建议参数推荐范围影响效果gamma_l0.3-0.7控制低频成分保留程度gamma_h1.5-3.0控制高频成分增强程度c0.5-2.0影响过渡带陡峭程度d020-50决定滤波器的截止频率提示对于不同卫星图像建议先在小区域测试参数再应用到整幅图像3. 小波变换去云实现小波变换通过多尺度分析可以更好地保留图像细节同时去除噪声。3.1 算法原理小波去云的主要步骤小波分解将图像分解为不同频率子带系数处理调整近似系数和细节系数小波重构重建去云后的图像小波基选择对比小波基优点缺点Haar计算简单速度快方块效应明显Daubechies平滑性好计算复杂度高Symlet近似对称性需要更多分解层数3.2 Python实现def wavelet_denoise(img, wavelethaar, level3, alpha0.6, beta1.5): 小波变换去云实现 参数 img: 输入灰度图像 wavelet: 使用的小波基 level: 分解层数 alpha: 近似系数权重 beta: 细节系数权重 返回 去云后的图像 # 小波分解 coeffs pywt.wavedec2(img, wavelet, levellevel) # 系数处理 coeffs_new list(coeffs) coeffs_new[0] * alpha # 处理近似系数 for i in range(1, len(coeffs)): coeffs_new[i] tuple(beta * c for c in coeffs[i]) # 增强细节 # 小波重构 denoised pywt.waverec2(coeffs_new, wavelet) denoised np.clip(denoised, 0, 255).astype(np.uint8) return denoised # 应用小波去云 result_wavelet wavelet_denoise(img)3.3 多尺度分析可视化# 可视化小波分解结果 coeffs pywt.wavedec2(img, haar, level3) titles [Approximation, Horizontal, Vertical, Diagonal] plt.figure(figsize(12, 10)) for i, (cH, cV, cD) in enumerate(coeffs[1:]): plt.subplot(3, 3, i*31) plt.imshow(cH, cmapgray) plt.title(fLH{i1} - Horizontal) plt.subplot(3, 3, i*32) plt.imshow(cV, cmapgray) plt.title(fHL{i1} - Vertical) plt.subplot(3, 3, i*33) plt.imshow(cD, cmapgray) plt.title(fHH{i1} - Diagonal) plt.tight_layout() plt.show()4. 效果评估与对比4.1 主观视觉评估将三种结果并排显示plt.figure(figsize(18, 6)) plt.subplot(1, 3, 1) plt.imshow(img, cmapgray) plt.title(原始图像) plt.subplot(1, 3, 2) plt.imshow(result_homo, cmapgray) plt.title(同态滤波结果) plt.subplot(1, 3, 3) plt.imshow(result_wavelet, cmapgray) plt.title(小波变换结果) plt.tight_layout() plt.show()4.2 客观指标评估计算图像信息熵和标准差def calculate_entropy(img): hist cv2.calcHist([img], [0], None, [256], [0,256]) hist hist[hist ! 0] prob hist / hist.sum() return -np.sum(prob * np.log2(prob)) def calculate_metrics(original, processed): metrics { 原始熵: calculate_entropy(original), 处理后熵: calculate_entropy(processed), 原始标准差: np.std(original), 处理后标准差: np.std(processed) } return metrics # 计算指标 metrics_homo calculate_metrics(img, result_homo) metrics_wavelet calculate_metrics(img, result_wavelet) # 显示结果对比 print(同态滤波效果指标:) for k, v in metrics_homo.items(): print(f{k}: {v[0]:.2f}) print(\n小波变换效果指标:) for k, v in metrics_wavelet.items(): print(f{k}: {v[0]:.2f})4.3 算法适用场景对比特性同态滤波小波变换计算复杂度中等较高薄云去除效果优良厚云处理能力差中细节保留一般优秀参数敏感性高中等适用图像类型均匀薄云复杂云分布在实际项目中我发现对于大范围均匀薄云同态滤波效果更佳且速度更快而对于局部碎云或需要保留更多细节的场景小波变换是更好的选择。两种方法也可以组合使用先进行同态滤波去除大面积薄云再用小波变换处理剩余云噪点。

相关文章:

遥感图像处理实战:用Python+OpenCV实现同态滤波与小波变换去薄云(附完整代码与效果对比)

遥感图像去云实战:Python实现同态滤波与小波变换的深度对比 薄云覆盖是遥感图像处理中的常见挑战,它会降低图像对比度、模糊地物细节,直接影响后续的地物分类和环境监测精度。本文将带您用Python实现两种经典的去云算法——同态滤波与小波变换…...

MarkdownViewer++:Notepad++终极Markdown实时预览插件完整指南

MarkdownViewer:Notepad终极Markdown实时预览插件完整指南 【免费下载链接】MarkdownViewerPlusPlus A Notepad Plugin to view a Markdown file rendered on-the-fly 项目地址: https://gitcode.com/gh_mirrors/ma/MarkdownViewerPlusPlus 你是否曾在Notepa…...

FlicFlac:3分钟学会Windows音频格式转换,让音乐随心所欲播放

FlicFlac:3分钟学会Windows音频格式转换,让音乐随心所欲播放 【免费下载链接】FlicFlac Tiny portable audio converter for Windows (WAV FLAC MP3 OGG APE M4A AAC) 项目地址: https://gitcode.com/gh_mirrors/fl/FlicFlac 还在为手机无法播放…...

SEM教程丨如何用“场景词”突围,月揽165个询盘?

很多工业设备老板觉得SEM就是“谁出价高谁就赢”,结果往往是钱烧了一大堆,机器没卖出去几台。今天我们要复盘的是某食品安检设备公司的实操案例,看看它是如何摆脱“无效烧钱”,稳稳拿下月均165个精准咨询的 🍎。 一、 …...

Layerdivider:5步完成AI智能图像分层,免费生成专业PSD文件

Layerdivider:5步完成AI智能图像分层,免费生成专业PSD文件 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider Layerdivider是一款革命…...

Taotoken用量看板与账单追溯为团队开发带来的成本管控体验

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken用量看板与账单追溯为团队开发带来的成本管控体验 对于依赖大模型API进行开发的团队而言,成本的可观测与可控性…...

自动驾驶汽车三维路径规划与路径跟踪控制方法【附代码】

✨ 长期致力于自动驾驶汽车、三维路径规划、路径跟踪控制、深度强化学习、预瞄跟随、模糊推理、神经网络模型预测控制研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 &#xff0…...

免费AI抠像插件:OBS背景移除与虚拟绿幕的完整指南

免费AI抠像插件:OBS背景移除与虚拟绿幕的完整指南 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: https://gitc…...

为内部工具集成大模型能力时如何选择与接入 Taotoken

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为内部工具集成大模型能力时如何选择与接入 Taotoken 在企业内部开发数据分析、客服助手、代码生成等工具时,引入大模型…...

【Perplexity商业搜索避坑白皮书】:5类典型误搜场景、4种权威信源验证法,附Gartner认证验证清单

更多请点击: https://kaifayun.com 第一章:【Perplexity商业搜索避坑白皮书】:5类典型误搜场景、4种权威信源验证法,附Gartner认证验证清单 高频误搜场景识别 在企业级商业情报检索中,以下五类误搜行为显著降低决策可…...

Cadence Virtuoso计算器函数面板:从仿真波形到关键指标,手把手教你提取运放GBW和相位裕度

Cadence Virtuoso计算器函数实战:运放AC特性自动化评估指南 在模拟电路设计的日常工作中,我们常常需要面对这样的场景:完成运放AC仿真后,面对密密麻麻的波形曲线,如何快速准确地提取出增益带宽积(GBW)和相位裕度(PM)这…...

对比按需计费与套餐taotoken token plan在长期项目中的成本优势分析

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比按需计费与套餐:Taotoken Token Plan 在长期项目中的成本优势分析 1. 项目背景与成本考量 在长期依赖大模型 API …...

研究生你的救星来了

为了找一个研究方向的核心文献,我要同时打开知网、Web of Science、IEEE Xplore三个数据库,翻几十篇顶刊摘要,还要手动整理每个文献的研究方法、核心结论,熬到凌晨两点,结果还是理不清整个领域的研究脉络。直到上个月朋…...

利用Taotoken多模型能力为AIGC应用动态选择最佳模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken多模型能力为AIGC应用动态选择最佳模型 在构建内容生成类应用时,开发者常常面临一个核心挑战:…...

终极HTML转Figma教程:3步将任何网站变为可编辑设计稿

终极HTML转Figma教程:3步将任何网站变为可编辑设计稿 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html 你是否曾为网站设计稿与最终实现不一致而烦恼?或者作…...

Midjourney团队协作功能深度解析(仅限Beta内测成员验证的7层工作流架构)

更多请点击: https://kaifayun.com 第一章:Midjourney团队协作功能的演进逻辑与Beta内测准入机制 Midjourney自V5.2起将协作能力从“单用户提示工程”转向“多角色协同创作范式”,其核心演进逻辑围绕权限粒度、上下文继承性与资产归属治理三…...

研究生必看:论文机制图、流程图快速画法

在学术研究中,高质量的科研配图往往是论文能否被接收的关键因素之一。然而,对于没有专业绘画背景的科研人员来说,传统绘图软件的学习成本高、操作复杂,往往让人望而却步。MedPeer科研绘图工具正是为解决这一痛点而设计——让科研人…...

PDF怎么另存为JPG?5款工具2026年实测对比,电脑和手机都能用

想要把PDF文件转换成图片格式?无论是为了方便分享、减小文件大小,还是为了在不同平台使用,PDF转JPG都是一个常见需求。这篇文章就为你详细介绍PDF另存为JPG的多种方法,涵盖电脑和手机两大场景,让你快速找到最适合自己的…...

Word怎么转PDF?2026年各类场景转换方法对比指南

Word文档转换成PDF格式已成为办公日常的标配需求。无论是制作正式报告、投递简历、还是与他人共享文件,PDF格式都因其兼容性强、排版稳定的特点成为首选。本文整理了2026年最实用的Word转PDF官方方法和各类转换工具,帮你快速找到适合自己的转换方案。Wor…...

深度解析Real-ESRGAN:6B轻量模型实现专业级图像超分辨率

深度解析Real-ESRGAN:6B轻量模型实现专业级图像超分辨率 【免费下载链接】Real-ESRGAN Real-ESRGAN aims at developing Practical Algorithms for General Image/Video Restoration. 项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN Real-ESRGAN_…...

RISC-V开发板免费申请与实战指南:从环境搭建到项目移植

1. 项目概述:一次难得的RISC-V生态深度体验机会最近在开发者圈子里,一个消息引起了不小的讨论:可以免费申请到基于RISC-V架构的生态开发板。这对于我们这些常年和ARM、x86打交道的开发者来说,无疑是一个极具吸引力的“尝鲜”机会。…...

从STM32到RISC-V:如何快速将你的4P OLED驱动移植到CH32V307上

从STM32到RISC-V:如何快速将你的4P OLED驱动移植到CH32V307上 对于习惯了STM32标准库开发的工程师来说,第一次接触RISC-V架构的CH32V307系列时,最迫切的需求往往是如何快速复用现有的硬件驱动代码。本文将聚焦4P OLED屏幕的驱动移植&#xff…...

UrsPahoMqttClient 心跳问题解决指南——Paho 底层已自动处理,设好 KeepAlive 就行

UrsPahoMqttClient 心跳问题解决指南 ——Paho 底层已自动处理,设好 KeepAlive 就行 问题 用 UrsPahoMqttClient 做 MQTT 连接时,心跳 PingReq 报文怎么发送?目的是保持连接,防止被 Broker 踢下线。 结论 不需要手动发心跳&#x…...

3分钟掌握MangaOCR:日语漫画文本识别的终极解决方案

3分钟掌握MangaOCR:日语漫画文本识别的终极解决方案 【免费下载链接】manga-ocr Optical character recognition for Japanese text, with the main focus being Japanese manga 项目地址: https://gitcode.com/gh_mirrors/ma/manga-ocr 你是否曾面对日文漫画…...

基于ARM9工业平板与Linux的水质在线监测系统开发实践

1. 项目概述:当工业平板电脑遇上水质监测在环保、水产养殖、市政水务这些领域里,数据就是眼睛。过去,我们看水质,得靠人拿着采样瓶,一趟趟跑现场,再送回实验室,等上半天甚至几天才能拿到一份报告…...

为什么你的/fast命令总被降级?Midjourney内部队列优先级算法首度曝光(含3个即时生效的Prompt签名技巧)

更多请点击: https://kaifayun.com 第一章:快速模式降级现象的本质解构 快速模式降级(Fast Mode Degradation)并非简单的性能衰减,而是现代异步I/O栈中多层协同机制在资源约束下触发的确定性状态迁移过程。其本质是内…...

3分钟学会在Windows上安装安卓应用:APK-Installer完整指南

3分钟学会在Windows上安装安卓应用:APK-Installer完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上直接运行安卓应用,…...

新手村通关攻略:大唐杯‘通信技术导论’仿真模块全流程实操解析(含设备配置清单)

大唐杯通信技术仿真实战指南:从零搭建智能通信系统 第一次参加大唐杯的新手们,面对仿真模块里密密麻麻的设备参数和操作界面,是不是有种"我是谁?我在哪?我要点哪里?"的迷茫感?别担心&…...

FL Studio自带的Edison插件,才是隐藏的降噪神器!手把手教你清除录音底噪(含参数设置避坑指南)

FL Studio隐藏神器Edison:专业级降噪全流程实战指南 在家庭录音棚里,空调的嗡嗡声、电脑风扇的呼啸、电路底噪的嘶嘶声——这些不受欢迎的"伴奏"总是如影随形。当你在FL Studio中回放刚录制的人声或乐器时,这些背景噪音往往会毁掉整…...

紫光展锐虎贲T618核心板硬件设计实战解析:从架构到量产

1. 从一颗芯片到一块核心板:T618的硬件设计哲学在智能硬件开发领域,选型一颗合适的处理器平台,往往是项目成败的起点。紫光展锐的虎贲T618,作为一款定位中高端的移动平台SoC,近年来在平板、智能POS、工业手持终端乃至一…...