立体匹配视差图上色代码
发现大部分立体匹配算法生成的视差图都是单色的很多细节很难看清楚,所以就写了一段上色的代码分享一下:
import cv2
import numpy as np
import matplotlib.pyplot as plt
import os# 读取视差图,确保这里的路径是您的视差图文件路径
disparity_image_path = r'E:\a_zc666\MonSter-main\results\1..png'
disparity_image = cv2.imread(disparity_image_path, cv2.IMREAD_UNCHANGED)# 确保视差图是单通道灰度图
if len(disparity_image.shape) > 2 and disparity_image.shape[2] == 3:disparity_image = cv2.cvtColor(disparity_image, cv2.COLOR_BGR2GRAY)# 将视差图归一化到0-1范围内,以便应用颜色映射
min_val = np.min(disparity_image)
max_val = np.max(disparity_image)
normalized_disparity = (disparity_image - min_val) / (max_val - min_val) if max_val - min_val > 0 else disparity_image# 应用颜色映射
colored_disparity = cv2.applyColorMap((normalized_disparity * 255).astype(np.uint8), cv2.COLORMAP_JET)# 使用matplotlib显示图像
plt.imshow(cv2.cvtColor(colored_disparity, cv2.COLOR_BGR2RGB))
plt.axis('off') # 不显示坐标轴
plt.show()# 指定保存文件夹
save_dir = r"E:\a_zc666\MonSter-main\result_image"# 确保保存文件夹存在
if not os.path.exists(save_dir):os.makedirs(save_dir)# 获取原始文件的文件名
file_name = os.path.basename(disparity_image_path)# 定义保存路径,保持与原始文件相同的文件名
save_path = os.path.join(save_dir, file_name)# 保存上色后的视差图
cv2.imwrite(save_path, colored_disparity)print(f"Colored disparity image saved to {save_path}")
直接上效果: