在学习立体视觉过程中,视差图会以灰度图的形式表现出来,然而在论文中,为了便于观看,增强图像的效果,常常会需要转换成伪彩色。

在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的数值调整,我设置为1,感觉对比度大一些
	im_color = cv2.applyColorMap(cv2.convertScaleAbs(im_depth, alpha=1), cv2.COLORMAP_JET)
	# 转成png
	im = Image.fromarray(im_color)
	# 保存图片
	im.save(os.path.join(outdir, os.path.basename(pngfile)))

for pngfile in glob.glob("C:/Users/lenovo/Desktop/2colorful/GrayscaleImage/*.png"):
	convertPNG(pngfile, "C:/Users/lenovo/Desktop/2colorful/ColorMap")

在程序中有alpha这个值,会影响效果,我参考的文档设置为了15,根据我的图片,我设置为了1,甚至删了,直接按照缺省的情况,都没啥问题。

可选的颜色空间如下图所示:
在这里插入图片描述

最后我选用了Middlebury Stereo数据集的深度图进行转换,选用的图片和转化的效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐