目标:将文件中所有灰度/深度图像彩色化,增强图像效果。
流程:在python中利用opencv的colormap函数完成转化。
import cv2
import os.path
import glob
import numpy as np
from PIL import Image
def convertPNG(pngfile, outdir):
# 读取灰度图
im_depth = cv2.imread(pngfile)
# 转换成伪彩色(之前必须是8位图片)
# 这里有个alpha值,深度图转换伪彩色图的scale可以通过alpha的数值调整
im_color = cv2.applyColorMap(cv2.convertScaleAbs(im_depth, alpha=0.5), cv2.COLORMAP_JET)
# 转成png
im = Image.fromarray(im_color)
# 保存图片
im.save(os.path.join(outdir, os.path.basename(pngfile)))
img_names = glob.glob(os.path.join("output","*")) #输入文件夹 output
num_images = len(img_names)
for ind, img_name in enumerate(img_names):
print(" processing {} ({}/{})".format(img_name, ind + 1, num_images))
convertPNG(img_name, "results") #输出文件夹 results
print("finished")
细节: cv2.applyColorMap(src,colormap,dst=None)
cv.applyColorMap()函数将一层的深度图(黑白)映射到三层,打印出来便是彩色图。
depth_image = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)