在这段代码中如何保存掩膜结果?
时间: 2024-03-16 16:47:43 浏览: 102
halcon在灰度图像上应用一个掩膜
在这段代码中,可以使用 `rasterio` 库中的 `rasterio.open` 和 `rasterio.write` 方法来保存掩膜结果。具体来说,可以按照以下步骤进行操作:
1. 导入 `rasterio` 库并读取原始影像文件和掩膜文件。
```python
import rasterio
# 读取原始影像文件和掩膜文件
image_file = "image.tif"
mask_file = "mask.tif"
with rasterio.open(image_file) as src:
image = src.read()
profile = src.profile # 获取原始影像的元数据
with rasterio.open(mask_file) as src:
mask = src.read()
```
2. 将掩膜文件中的 True 像素作为索引,将其在 `mask` 数组中的对应位置的像素值设置为 1,其余像素值设置为 0。
```python
mask = mask.astype('uint8') # 将数据类型转换为 uint8
mask[mask!=0] = 1 # 将 True 像素值设置为 1,其余像素值设置为 0
```
3. 对原始影像数组进行掩膜操作。
```python
masked_image = image * mask # 对原始影像数组进行掩膜操作
```
4. 将掩膜结果保存为一个新的 GeoTIFF 文件。
```python
masked_image_file = "masked_image.tif"
# 将掩膜结果保存为一个新的 GeoTIFF 文件
with rasterio.open(masked_image_file, 'w', **profile) as dst:
dst.write(masked_image)
```
通过上述步骤,就可以将掩膜结果保存为一个新的 GeoTIFF 文件。需要注意的是,新文件的元数据应该与原始影像文件的元数据保持一致,包括大小、分辨率、坐标系等信息。
阅读全文