voc分割資料集 pil調色盤
阿新 • • 發佈:2020-08-13
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開啟之後,就變成了標籤圖!神奇吧!