将RGB图片和暗通道D融合成四通道RGBD图片

参考这篇https://blog.csdn.net/c_qianbo/article/details/53364189

但是有些错误,

(1).首先 ,出现了无法读入图片,是因为cv2 的函数改了,

将cv2.CV_LOAD_IMAGE_UNCHANGED改为cv2.IMREAD_ANYCOLOR;

(2).也有在27行报错说“too many indices for array”的错误,但是将循环内的内容拿出来后,随便赋一个值测试时并没有错,最后不知道什么原因就解决了,还是没有弄明白;

(3).最后保存图片时,图存的图片仍然是3通道图片并没有变化;保存原图片的格式是jpg的,但是将保存格式变为png时就解决了。

最后改正后代码如下:

# -*- coding: UTF-8 -*-
import numpy as np
import os, os.path
import cv2

# 通过txt文件中的路径读取RGB图片
train_file = open('nonsmokeRGB.txt')
input_data_train = train_file.readlines()
train_file.close()
# 通过txt文件中的路径读取视差图
disp_file = open('nonsmokeDark.txt')
input_data_disp = disp_file.readlines()
disp_file.close()

for i, name in enumerate(input_data_train):
    # 去掉末尾的换行符,name = input_data_train[i]
    input_data_train[i] = input_data_train[i].strip()
    input_data_disp[i] = input_data_disp[i].strip()
    print i
    rgb = cv2.imread(input_data_train[i], cv2. IMREAD_ANYCOLOR)
    disp = cv2.imread(input_data_disp[i],cv2. IMREAD_ANYCOLOR)
    rgb = np.array(rgb)
    disp = np.array(disp)
    rgbd = np.zeros((100, 100, 4), dtype=np.uint8)
    rgbd[:, :, 0] = rgb[:, :, 0]
    rgbd[:, :, 1] = rgb[:, :, 1]
    rgbd[:, :, 2] = rgb[:, :, 2]
    rgbd[:, :, 3] = disp
#     input_data_train[i] = os.path.split(input_data_train[i])
    filename = 'D:\pythonWorkSpace\Ex_1\RGBD\onsmoke\%s' % i +'.png'
    print filename
#     # 保存的RGBD图片文件名为RGB图片的文件名
    cv2.imwrite(filename, rgbd)
print ("success")

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值