功能需求
在遥感影像进行图像分割的模型推理后,输出结果一般都是基于像素值的栅格图,就是一个像素值表示一个类别,但我们实际需要输出的结果应该是每个类别的图斑边界,这样就需要将栅格图斑转为面矢量。
解决思路
选择需要转为矢量图斑的类别值,找到该类别值对应的栅格图斑,提取每个栅格图斑的轮廓边界,基于这些边界转为面矢量,然后将这些面矢量写入矢量文件,核心代码如下:
for poly, value in polygonize(
cls_map,
mask=cls_map != 0,
transform=transform,
simplify=simplify,
epsilon=epsilon):
area0 = shape(poly).area*k
feature = {
'geometry': poly,
'properties': {
'index': value,
'name': classes[int(value)],
'area': round(area0, 3)
}
}
dst.write(feature)
最后转换后的结果如下图所示:
推理结果栅格图斑在原始影像上叠加效果
转换后矢量图斑在原始影像上叠加效果
获取本博客全部代码资料或咨询交流见 博主首页→个人简介
1、本博客相关代码;
2、指导代码运行;
3、同类任务咨询交流;