首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建RGB合成SAR图像

创建RGB合成SAR图像
EN

Stack Overflow用户
提问于 2016-11-08 20:22:36
回答 2查看 1.8K关注 0票数 4

我在Python编程方面很新,我需要你的帮助。在发帖之前,我总是先对我的问题做一次调查。

我有SAR双极化图像(2^16灰度值)的tiff格式。在这个tiff图像中有两个波段。第一波段(HH_band)是水平极化信道,第二频带(HV_band)是垂直极化信道。我想要创建一个RGB复合映像。要做到这一点,我需要按以下方式对这两个通道进行层叠:

  1. 获得第一波段(HH_band)
  2. 获得第二波段(HV_band)
  3. 得到比率(HH_带/HV_带)

我知道有很多人发布了类似于此的帖子(RGB自然色彩合成图像)。我试图从cv2.merge库中使用openCV或cv2.split,但没有起作用。我认为用Python创建一个SAR RGB映像相对容易(我看到了一些关于创建LANDSAT的RGB映像的帖子),但我还是陷入了困境。

我非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-16 18:43:07

下面是以编程方式完成乐队组合的一种可能方法:

代码语言:javascript
运行
复制
import numpy as np

tif = io.imread('dual_polarization_image.tif')

band = {'HH': 0, 'HV': 1}

r = tif[:, :, band['HH']]
g = tif[:, :, band['HV']]

hh = r.astype(np.float64)
hv = g.astype(np.float64)

b = np.divide(hh, hv, out=np.zeros_like(hh), where=hv!=0)

rgb = np.dstack((r, g, b.astype(np.uint16)))

备注:

  • 只要简单地重新定义字典band的值,就可以处理TIFF图像中不同波段的排列。
  • 在计算带宽比之前,需要将数据转换为np.float64
  • 我利用了where选项通用函数来避免零除法警告。
  • 为了使合成成为可能,必须将带比(蓝色通道)转换回与原始波段(红色和绿色通道)相同的类型(即np.uint16)。
票数 3
EN

Stack Overflow用户

发布于 2016-11-11 03:59:57

没有示例映像是很难进行测试的,但是您应该能够使用ImageMagick命令行进行测试,这是大多数Linux发行版中包含的,并且可用于OSX和Windows。

该命令如下所示:

代码语言:javascript
运行
复制
convert HH.tif HV.tif \( -clone 0 -clone 1 -compose divide -composite \) \
   -combine -auto-level result.png
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40495732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档