我在Python编程方面很新,我需要你的帮助。在发帖之前,我总是先对我的问题做一次调查。
我有SAR双极化图像(2^16灰度值)的tiff格式。在这个tiff图像中有两个波段。第一波段(HH_band)是水平极化信道,第二频带(HV_band)是垂直极化信道。我想要创建一个RGB复合映像。要做到这一点,我需要按以下方式对这两个通道进行层叠:
我知道有很多人发布了类似于此的帖子(RGB自然色彩合成图像)。我试图从cv2.merge
库中使用openCV或cv2.split
,但没有起作用。我认为用Python创建一个SAR RGB映像相对容易(我看到了一些关于创建LANDSAT的RGB映像的帖子),但我还是陷入了困境。
我非常感谢你的帮助。
发布于 2017-03-16 18:43:07
下面是以编程方式完成乐队组合的一种可能方法:
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
)。发布于 2016-11-11 03:59:57
没有示例映像是很难进行测试的,但是您应该能够使用ImageMagick命令行进行测试,这是大多数Linux发行版中包含的,并且可用于OSX和Windows。
该命令如下所示:
convert HH.tif HV.tif \( -clone 0 -clone 1 -compose divide -composite \) \
-combine -auto-level result.png
https://stackoverflow.com/questions/40495732
复制相似问题