kinect得到的深度圖灰不拉幾,人眼很難識別出其中的物體,感知深度的變化。
在做展示的時候,我們往往需要可視化,使用OpenCV的預定義的顏色映射來將灰度圖像偽彩色化,在OpenCV中使用applycolormap(偽彩色函數)。
import cv2 import os.path import glob import numpy as np from PIL import Image def convertPNG(pngfile,outdir): # READ THE DEPTH im_depth = cv2.imread(pngfile) #apply colormap on deoth image(image must be converted to 8-bit per pixel first) im_color=cv2.applyColorMap(cv2.convertScaleAbs(im_depth,alpha=15),cv2.COLORMAP_JET) #convert to mat png im=Image.fromarray(im_color) #save image im.save(os.path.join(outdir,os.path.basename(pngfile))) for pngfile in glob.glob("PNG FILE"):#C:/Users/BAMBOO/Desktop/source pics/rgbd_6/depth/*.png convertPNG(pngfile,"TARGET FILE")#C:/Users/BAMBOO/Desktop/source pics/rgbd_6/color
代碼里寫得挺清楚了,深度圖轉換偽彩色圖的scale可以通過alpha的數值調整。
得到的結果如下
轉換之前:
轉換之后