佳格天地 AI地图遥感比赛 标签 测试图像黑乎乎一片

 

 

      

 

由上面几张图可以看出,主办方把训练图像和测试图像搞成了4通道,数据类型为uint16类型,计算机可视化图像一般是三通道,数据类型为uint8,或者单通道,数据类型为uint8。

训练图像的标签也是黑乎乎的原因,标签图像是单通道uint8没有错,只是由于标签数量为五类,分别分为五类:植被(标记1)、建筑(标记2)、水体(标记3)、道路(标记4)以及其他(标记0),耕地、林地、草地均归为植被类。只是数值太小了,数值0到4的灰度图肯定是黑乎乎的,可以相应同步把数据增加128就可以看到了,或者给标签着色(一个标签数值对应一个三通道颜色)

可视化训练图像和测试图像代码如下,通过下面代码就可以可视化图像了:

img = cv2.imread("D:\BaiduNetdiskDownload\BDCI2017-jiage-Semi\\testing\\testing1.png", cv2.IMREAD_UNCHANGED)
    img_out = np.zeros((img.shape[0],img.shape[1],3)).astype(np.uint8)
    img_out = img[:,:,:3]
    img_out = img_out.astype(np.uint8)
    cv2.imwrite("D:\BaiduNetdiskDownload\BDCI2017-jiage-Semi\\testing\\testing11.png", img_out)

 

标签着色代码:

#注意:opencv读取图片的三通道顺序是bgr

others = [0, 0, 255]      #红色 其他
plant = [0, 255, 0]       #绿色 植被
building = [255, 0, 0]    #蓝色 建筑
water = [0, 255, 255]     #黄色 水体
road = [255, 255, 255]    #白色 道路

color_dit = np.array([others,plant,building,water,road])

#给图像分割标签打上颜色
def label_color(predit_map,color_dict,num_class):
    # 如果图像是三通道,则取第一通道
    img = predit_map[:, :, 0] if len(predit_map.shape) == 3 else predit_map
    # 预先分配三通道的空间
    img_out = np.zeros(img.shape +(3,))

    for i in range(num_class):
        debug = (img == i)
        # 如果img像素值等于i,则把img_out对应位置的三通道值设置为color_dit[i]
        img_out[img == i,:] = color_dit[i]

    return img_out

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值