voc分割数据集有两种,文件夹名字分别是SegmentationClass,SegmentationClassAug,其中SegmentationClass文件夹图片样式如下:
SegmentationClassAug文件夹图片样式如下:
今天来说下SegmentationClass文件夹带彩色图的,读一个deeplab的pytorch代码的时候,我就在找是怎么把颜色对应到标签图的,找了半天没有,但是发现最后的处理得到的标签图确实是0-21的像素,可是哪里处理了的了.
def _make_img_gt_point_pair(self, index):
_img = Image.open(self.images[index]).convert(‘RGB‘)
_target = Image.open(self.categories[index])
return _img, _target
只有一处是通过PIL读取图片,然后我惊奇的发现仅仅是通过这个读就已经转成了0-21的标签图!!!???why?
def _make_img_gt_point_pair(self, index):
_img = Image.open(self.images[index]).convert(‘RGB‘)
_target = Image.open(self.categories[index])
_img.show()
_target.show()
import numpy
img = numpy.array(_img)
targe = numpy.array(_target)
用pilshow出来,还是彩色图
但是我用numpy看targe已经是单通道了...然后我再用opencv显示,
def _make_img_gt_point_pair(self, index):
_img = Image.open(self.images[index]).convert(‘RGB‘)
_target = Image.open(self.categories[index])
_img.show()
_target.show()
import numpy
img = numpy.array(_img)
targe = numpy.array(_target)
import cv2
cv2.imshow("opencv-show-pil",targe)
cv2.waitKey()
mm = cv2.imread(self.categories[index],-1)
cv2.imshow("opencv-read", mm)
cv2.waitKey()
这里可以看到,直接读取路径确实是彩色图,但是经过pil打开之后,就变成了标签图!神奇吧!
原文:https://www.cnblogs.com/yanghailin/p/13495991.html