python实现将RGB图和深度图融合为四通道RGBD图(批量)

通常情况下,RGB图和深度图分开存储,有的时候想放到一张图片里保存所有信息,可以把深度信息放到RGBA的第四个通道(透明度通道),这篇文章介绍实现方法。
注意:本文记录的是一个文件夹下文件的批量处理,如果只想处理一对文件只需使用sum_RGBD()即可

RGB+深度合成四通道RGBD

javascript 复制代码
from PIL import Image
import os
import numpy as np
import cv2

# function:将RGB图像文件和深度图像文件合并为RGBD文件
def sum_RGBD(rgb_image_path, depth_image_path, dir_path):
    # 读取RGB图像和深度图像
    rgb_image = Image.open(rgb_image_path)  # 更换为你RGB图像的路径
    depth_image = Image.open(depth_image_path)  # 更换为你深度图像的路径

    # 确保深度图像是单通道,如果不是,转换为灰度图像
    if depth_image.mode != 'L':
        depth_image = depth_image.convert('L')

    # 检查两张图像的尺寸是否匹配
    if rgb_image.size != depth_image.size:
        raise ValueError("The size of the two images does not match.")

    # 合并图像
    rgbd_image = Image.merge("RGBA", (
    rgb_image.getchannel('R'), rgb_image.getchannel('G'), rgb_image.getchannel('B'), depth_image))

    # 保存结果
    save_path = 设置保存路径
    rgbd_image.save(save_path)  # 更换为你想保存的路径

批量处理

javascript 复制代码
# function:从文件夹中获取文件名列表
def get_filename_list(image_folder_path, depth_folder_path):
    image_file_names = os.listdir(image_folder_path)
    depth_file_names = os.listdir(depth_folder_path)
    return image_file_names, depth_file_names
    
if __name__ == '__main__':
	# 改成自己的路径!!!
    image_file_names, depth_file_names = get_filename_list(image_folder_path, depth_folder_path)
    for i in range(len(image_file_names)):
        rgb_image_path = image_folder_path + image_file_names[i]
        depth_image_path = depth_folder_path + depth_file_names[i]
        dir_path = 设置保存路径
        sum_RGBD(rgb_image_path, depth_image_path, dir_path)

验证是否为四通道

javascript 复制代码
def is_rgbd_image(image):
    return len(image.getbands()) > 3
相关推荐
zone77396 小时前
001:简单 RAG 入门
后端·python·面试
F_Quant6 小时前
🚀 Python打包踩坑指南:彻底解决 Nuitka --onefile 配置文件丢失与重启报错问题
python·操作系统
允许部分打工人先富起来7 小时前
在node项目中执行python脚本
前端·python·node.js
IVEN_7 小时前
Python OpenCV: RGB三色识别的最佳工程实践
python·opencv
haosend8 小时前
AI时代,传统网络运维人员的转型指南
python·数据网络·网络自动化
曲幽8 小时前
不止于JWT:用FastAPI的Depends实现细粒度权限控制
python·fastapi·web·jwt·rbac·permission·depends·abac
IVEN_1 天前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang1 天前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮1 天前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling1 天前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python