3D滤波器处理遥感tif图像

python 复制代码
import cv2
import numpy as np
from osgeo import gdal

# 定义 Gabor 滤波器的参数
kSize = 31  # 滤波器核的大小
g_sigma = 3.0  # 高斯包络的标准差
g_theta = np.pi / 4  # Gabor 函数的方向
g_lambda = 10.0  # 正弦波的波长
g_gamma = 0.5  # 空间纵横比
g_psi = np.pi / 2  # 相位偏移

# 生成 Gabor 滤波器核
kernel = cv2.getGaborKernel((kSize, kSize), g_sigma, g_theta, g_lambda, g_gamma, g_psi, ktype=cv2.CV_32F)

# 使用gdal读取遥感图像
dataset = gdal.Open("1.tif")
image = dataset.ReadAsArray().transpose((1, 2, 0))  # 将波段维度转置到最后

# 获取图像的波段数
num_bands = image.shape[2]

# 初始化处理后的多波段图像
filtered_image = np.zeros_like(image, dtype=np.float32)

# 遍历每个波段
for band in range(num_bands):
    # 提取当前波段
    band_image = image[:, :, band]

    # 应用 Gabor 滤波器
    filtered_band_image = cv2.filter2D(band_image, cv2.CV_32F, kernel)

    # 将处理后的波段放回结果图像中
    filtered_image[:, :, band] = filtered_band_image

# 将处理后的图像转换为合适的数据类型
filtered_image = np.clip(filtered_image, 0, 255).astype(np.uint8)

# 保存结果
driver = gdal.GetDriverByName('GTiff')
out_dataset = driver.Create('gaofen2_image.tif', dataset.RasterXSize, dataset.RasterYSize, num_bands, gdal.GDT_Byte)
out_dataset.SetProjection(dataset.GetProjection())
out_dataset.SetGeoTransform(dataset.GetGeoTransform())
for band in range(num_bands):
    out_band = out_dataset.GetRasterBand(band + 1)
    out_band.WriteArray(filtered_image[:, :, band])
out_dataset.FlushCache()

# 关闭数据集
dataset = None
out_dataset = None
相关推荐
weixin_416660078 天前
原创分享:Markdown 转 Word 工具,一键导出Word/PDF文档
pdf·word·latex·deepseek
伟贤AI之路17 天前
为什么AI里的公式复制到Word格式会乱?
人工智能·word·latex
weixin_4166600718 天前
从标记语言到 Word 文档:AI 生成的 Mermaid 与 LaTeX 自动化转换的技术方案解析
word·latex·数学公式·deepseek
记录无知岁月24 天前
【LaTeX】入门和使用拾遗
数学建模·教程·latex·论文写作·texlive·texsudio
微小冷25 天前
用Latex画思维导图:Forest
latex·思维导图·脑图·tikz·forest·树形图
热爱生活的五柒1 个月前
如何将word中latex公式复制到另一个文档中
word·latex
Sakuraba Ema1 个月前
从零理解 MoE(Mixture of Experts)混合专家:原理、数学、稀疏性、专家数量影响与手写 PyTorch 实现
人工智能·pytorch·python·深度学习·数学·llm·latex
简宸~1 个月前
VS Code + LaTex + SumatraPDF联合使用指南
java·vscode·latex·sumatrapdf
bu_shuo1 个月前
AI生成的数学公式复制为LaTeX插件
ai·chatgpt·latex·gemini·千问·豆包·数学公式复制
还不秃顶的计科生2 个月前
latex代码裁剪pdf图片
pdf·latex