代码拉取完成,页面将自动刷新
"""
在执行提取操作前要先对与之无关的影像区域进行遮罩。这种技术被称为阈值分割(二值化)。本例中,
阈值图像上岛屿和背景区域的水域形成了足够鲜明的对比,阈值化(二值化)后能够完美地将它分隔开来。
"""
from osgeo import gdal_array
src = "TIF/islands/islands.tif"
output = "TIF/islands/islands_classified.tiff"
srcArray = gdal_array.LoadFile(src)
# 将直方图分割成2个子区间以便分类
classes = gdal_array.numpy.histogram(srcArray, bins=2)[1]
lut = [[250, 0, 0], [0, 0, 0], [255, 255, 255]]
# 分类起始值
start = 1
# 建立输出图片
rgb = gdal_array.numpy.zeros((3, srcArray.shape[0], srcArray.shape[1],), gdal_array.numpy.float32)
# 处理所有类别并分配颜色
for i in range(len(classes)):
mask = gdal_array.numpy.logical_and(start <= srcArray, srcArray <= classes[i])
for j in range(len(lut[i])):
rgb[j] = gdal_array.numpy.choose(mask, (rgb[j], lut[i][j]))
start = classes[i] + 1
# 保存图片
gdal_array.SaveArray(rgb.astype(gdal_array.numpy.uint8), output, format="GTIFF", prototype=src)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。