python - 从 4 波段图像中提取 RGB(光栅)
问题描述
我是 python 的初学者,我仍然熟悉它的库,如果这是一个新手问题,我深表歉意。我只想显示 4 个波段(R、G、B、NIR)的图像。我想删除 NIR 并保留其他 3。我该怎么做?由于 rasterio 返回的是对象而不是图像,因此我无法使用 split 功能。
from rasterio.plot import show
from matplotlib import pyplot
dataset = rasterio.open('sample.tif')
show(dataset)
这当然显示了不正确的结果(白色和黄色图像)。
编辑,我尝试了以下方法:
img_combined = cv2.merge((dataset.read(1),dataset.read(2),dataset.read(3)))
%matplotlib qt
plt.imshow(img_combined)
plt.xticks([]), plt.yticks([])
plt.show()
但它仍然以黄色和白色显示图像。
解决方案
为了仅显示 RGB 波段(不是 alpha)或任何特定波段,您需要使用 read 方法和 show 方法。
import rasterio
from rasterio.plot import show
#to display RGB
dataset = rasterio.open('sample.tif')
show(dataset.read([1,2,3]))
#to display just the red band:
show(dataset.read(1))
推荐阅读
- selenium - Selenium 的端口是什么意思?
- java-8 - Java8 流条件处理
- google-bigquery - 将 table_id 添加到 BigQuery 中多个表的结果中
- python - 在 Maya Python 中更新对象名称的问题
- html - 如何将“-”放入表单html
- c# - 在 Xamarin android 活动之间传递数据
- reactjs - React 有时不使用更新的源文件
- amazon-eks - Populating AWS Alb Ingress Annotations from ConfigMap
- python - 如何防止在 django 中提交带有空 CKEditor 的表单
- html - 如何从轮播引导程序中删除灰色空间