首页 > 其他 > 详细

voc 分割数据color彩图直接转灰度图

时间:2021-05-22 23:08:19      阅读:14      评论:0      收藏:0      [点我收藏+]

就是我有一批标注好的color图,那个类别用不同像素来表示。现在我只需要这批数据的4类。其他类别都不需要了。
任务就是把color图上所需要的类别转为灰度标签图。
其实也简单,知道每个类别对应的颜色了,那么就构造同等大小的灰度图,相应颜色就置为相应类别。举例如下:
技术分享图片
比如猫??的颜色是[255,0,128],然后猫的类别为3。那么我就把彩图上面[255,0,128]像素在灰度图上对应位置置为3。
主要涉及python opencv 的位置像素操作。

import cv2
import os
import numpy as np

color_map = np.asarray([
    [180,120,120], #1  
    [224,5,255], #2
    [4,200,3], #3
    [6,230,230] #3
])


path_color_mark1 = "/data/color/"
path_save = "/data/save_gray/"

list_color = os.listdir(path_color_mark1)
for cnt,img_name in enumerate(list_color):
    print(cnt,img_name)
    path_img = path_color_mark1 + img_name
    img_color = cv2.imread(path_img)
    h,w,_ = img_color.shape

    len_color = len(color_map)
    gray_img = np.zeros([h, w, 1], np.uint8)
    for i in range(len_color):
        pos = img_color == color_map[i]
        pos_1 = pos[:, :, 0] ##由于pos的shape和color图一样是[h,w,c]。 pos里面的数值都是False,False,True  而gray图是当通道的,[h,w]

        label = i + 1
        if 2==i or 3==i:
            label = 3
        gray_img[pos_1] = label

    cv2.imwrite(path_save + img_name,gray_img)

voc 分割数据color彩图直接转灰度图

原文:https://www.cnblogs.com/yanghailin/p/14799525.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!