我正在使用语义分段网络(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个通道中。
输出如下:
但是,如果我修改了行并将值添加到不同的通道,它会产生奇怪的输出。输出结果如下:
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
这样的网站上查看了它我在这里缺少什么?任何解释都会有所帮助。
预测代码:
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。我在两种情况下都使用相同的模型进行预测
答案 0 :(得分:0)
问题很可能发生在np.multiply(color_image,255)
。
当您创建一个已经包含0到255之间值的托盘并且您只是从该托盘中收集值时,您不需要将其乘以255.
只使用Image.fromarray(color_image).save(out_file)
。