本文介绍 从为什么VOC的分割标注8位单通道确实彩色图片说起

从为什么VOC的分割标注8位单通道确实彩色图片说起

This article was original written by Jin Tian, welcome re-post, first come with https://jinfagang.github.io . but please keep this copyright info, thanks, any question could be asked via wechat: jintianiloveu

记录一个很基础的问题,却从来没有人关心过。甚至很多人不懂。但是这个问题却不是一个简单的问题,如果你没有弄懂这个问题,下面两个问题你很难回答:

用opencv读取voc的分割label,能获取到以class id标注的像素点label吗?如果能,怎么才能实现?另外,就是这个问题,为什么8位单通道是彩色的?

十分重要的数据预处理

很多人凭借着对网络的深入理解,就可以对网络的运作方式把控与胸,但实际上并没有这么简单。不同的预处理操作,可能会带来完全不同的结果,这就像给图片加个噪点,网络就把熊猫变成大猩猩一样。

通常,VOC的标注是8bit的,请注意,是8位的,这个8位怎么理解呢?我们正常的图片是24bit,也就是3×8, 3个通道的8位,每个通道的颜色值范围是0-255.因此你的一张图片矩阵应该是:

[ [[233, 221, 123], [123, 34, 44], ...] ]

但是呢,只有一个通道的8位,是u如何实现彩色的呢?为什么一个通道就能实现彩色,我还要3通道做什么呢?

这个问题我也不懂。

但是我想找的是,这种8位的彩色图为什么是彩色的?

结论:并非只有3通道,它才是彩色的,彩色只是一种格式,与矩阵通道数没有太大的关系。灰度图也是可以转换成彩色的。

opencv如何读取伪彩色图

VOC的数据用PIL可以读取,但我就想用opencv读,能不能实现?