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的數值調整。
得到的結果如下
轉換之前:

轉換之后

