如图所示,图右边是3x3的颜色板,左边是图片和无标签的语义分割图
需要把颜色板每行颜色对应到左边图中的每个物体上,如图第一行的颜色需要给狗,第二行颜色给背景,第三行给脚印
因为没有标签,我只能想到将语义分割图按颜色分为各个部分的mask
问题:接下来每个区域怎么对应到颜色板?每行每列的颜色怎么分布在每个物体上?希望大佬提供详细解决思路感谢
你是要替换图片中像素的颜色吗?
3X3的颜色板是图片输入吗,还是人为设计一个3*3矩阵
所以你到底是左边提取出颜色放到矩阵中,还是右边矩阵颜色分配个左边?
你搞的好乱啊
右边色板的颜色放到左边,图上是从右到左的单箭头...
3x3的颜色板是rgb值3*3的矩阵,我可能没表述清楚,目标是将右边每行色板里的颜色与左边的各个区域形成对应关系
colorboard = [(255, 255, 255), (0, 0, 0), (255, 0, 0)] #3*3颜色板 # 将颜色赋给各对象 dog['color'] = colorboard[0] # 狗的颜色 background['color'] = colorboard[1] # 背景 foot['color'] = colorboard[2] # 你的输入是什么情况,还是没有描述清楚
输入是600*600的单位矩阵,原本是将单位矩阵分为3份然后和颜色板的各个对象对应。但是现在多了一张语义分割图,我想根据语义分割的各个对象来对应每行颜色,下面是没有语义分割图的代码
def make_colorgram_tensor(color_info, width=600, height=600): """ divided by 3 regions """ colors = list(color_info.values())#得到颜色板 topk = len(colors[0].keys()) tensor = np.ones([topk * 3, height, width], dtype=np.float32) region = height // 3 #这里分成了3份 for i, color in enumerate(colors): idx = region * i for j in range(1, topk + 1): r, g, b = color[str(j)] # assign index red = (j - 1) * 3 green = (j - 1) * 3 + 1 blue = (j - 1) * 3 + 2 # assign values tensor[red, idx:idx + region] *= r tensor[green, idx:idx + region] *= g tensor[blue, idx:idx + region] *= b tensor = torch.from_numpy(tensor.copy()) return scale(tensor / 255.)