语义分割中的RGB颜色代码

时间:2018-05-18 12:43:03

标签: python tensorflow keras semantic-segmentation

我正在使用语义分段网络(SegNet)。我正在努力减少课程数量,从而重新安排网络。

因此我也在改变预测的颜色编码。我的问题是我没有在输出图像中获得预期的颜色。

例如

 var XMLDocumentMaster = XElement.Load(@"D:\Stephen\Documents\Schema\AgileFlow_Import.xsd");  
    IEnumerable<XElement> items =  
        from el in XMLDocumentMaster.Descendants("minOccurs")  
        select el;  
    foreach(XElement Ovaule in items)  
       if(Ovaule=0)Console.WriteLine(Ovaule.Name + ":" + (string) Ovaule);

上面一行给出了三个类的完美结果,因为像素只在1个通道中。

输出如下:

Gives results as expected

但是,如果我修改了行并将值添加到不同的通道,它会产生奇怪的输出。输出结果如下:

pascal_palette = np.array([(0, 0, 0),
                           (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0),
                           (0, 0, 128), (0, 128, 0), (0, 0, 0), (0, 0, 0), (128, 0, 0),
                           (0, 0, 0), (0, 0, 0)
                        ], dtype=np.uint8) 

将颜色代码更改为(124,252,0)。代码应该是草坪绿色。我也在RBG codes

这样的网站上查看了它

All become red

我在这里缺少什么?任何解释都会有所帮助。

预测代码:

pascal_palette = np.array([(0, 0, 0),
                           (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0),
                           (0, 0, 128), (124, 252, 0), (0, 0, 0), (0, 0, 0), (128, 0, 0),
                           (0, 0, 0), (0, 0, 0)
                            ], dtype=np.uint8)

谢谢。 PS。我在两种情况下都使用相同的模型进行预测

1 个答案:

答案 0 :(得分:0)

问题很可能发生在np.multiply(color_image,255)

当您创建一个已经包含0到255之间值的托盘并且您只是从该托盘中收集值时,您不需要将其乘以255.

只使用Image.fromarray(color_image).save(out_file)