如何制作区分实体与非实体区域的二值黑白地面真值图像
2类K-means聚类结果转森林二值Ground Truth操作方法
你已经完成影像的2类K-means聚类后,所有像素已经被划分为两个互斥的类别,只需要完成类别匹配、像素重映射、校验三步就能得到符合要求的黑(森林)白(非森林)二值图:
- 第一步:确认聚类标签和地类的对应关系
K-means输出的聚类标签本身没有语义,你需要先把聚类结果和原始航拍影像做对照:对照方式:在聚类结果图上分别点选典型树冠区域、典型非森林区域(裸地、道路、林间空地等),记录两个区域各自对应的聚类标签值。
原始无人机航拍森林影像参考:
无人机森林航拍原始图 - 第二步:按规则做像素值重映射
确认标签对应关系后,直接做批量像素赋值即可,不同工具的操作逻辑一致:- 用Python(OpenCV+Numpy)批量处理的核心代码如下:
import cv2 import numpy as np # 读取单波段K-means聚类标签图 cluster_res = cv2.imread("your_kmeans_result.png", 0) # 替换为你上一步查到的森林对应的聚类标签值 forest_cluster_val = 1 # 初始化全白画布(255对应非森林区域) gt_binary = np.full(cluster_res.shape, 255, dtype=np.uint8) # 将所有森林类像素赋值为黑色(0) gt_binary[cluster_res == forest_cluster_val] = 0 # 导出二值真值图 cv2.imwrite("forest_ground_truth.png", gt_binary)- 用ArcGIS/QGIS等遥感工具处理:直接调用重分类工具,将森林对应聚类值设为0、非森林对应聚类值设为255,输出8位单波段影像即可。
- 用Photoshop/GIMP等图像工具处理:用魔棒工具选中某一类的所有同色区域,按对应关系填充黑色/白色,再反选区域填充另一颜色即可。
- 第三步:精度校验修正
重映射完成后,把二值图调整50%透明度叠加到原始航拍影像上,检查林缘、零星树木、小面积林间空地的边界是否准确,少量错分像素直接手动编辑修正即可。
内容的提问来源于stack exchange,提问作者Sina M
相关产品推荐
相关产品推荐

