深度图上色,深度图raw文件转为png,如何读取深度图raw文件?

news/2024/10/18 18:23:05/

raw文件,要知道宽、高、通道数、数据类型,就能顺利转化,下面是转化代码:


import numpy as np
import cv2# 图像的基本信息
width = 640  # 图像宽度
height = 480  # 图像高度
channels = 1  # 图像通道数,例如3表示RGB
dtype = 'uint16'  # 数据类型,根据实际情况可能是'uint8'或'uint16'等# 使用numpy从RAW文件读取数据
with open('Depth_1714481422987_0.raw', 'rb') as f:img_data = np.fromfile(f, dtype=np.uint16)# 根据图像尺寸重塑数组
img = img_data.reshape(height, width, channels)# 转换为 uint8
img_uint8 = (img / 256).astype('uint8')# 转换为灰度图像
# apply colormap on depth image(image must be converted to 8-bit per pixel first)
im_color = cv2.applyColorMap(cv2.convertScaleAbs(img_uint8, alpha=15), cv2.COLORMAP_JET)# 保存图像
cv2.imwrite('Depth_1714481422987_0_color.png', im_color)# 显示图像
cv2.imshow('Colored Depth Image', im_color)
cv2.waitKey(0)
cv2.destroyAllWindows()

一般jpg图的转换:

import numpy as np
import cv2# 图像的基本信息
width = 640  # 图像宽度
height = 480  # 图像高度
channels = 3  # 图像通道数,例如3表示RGB
dtype = 'uint8'  # 数据类型,根据实际情况可能是'uint8''uint16'等# 使用numpy从RAW文件读取数据
with open('Color_1714481423037_1.raw', 'rb') as f:img_data = np.fromfile(f, dtype=dtype)# 根据图像尺寸重塑数组
img = img_data.reshape(height, width, channels)# 如果图像数据是16位但cv2.imshow只支持8位,需要转换
if dtype == 'uint16' and cv2.__version__.startswith('3'):img = (img / 256).astype('uint8')cv2.imwrite('Color_1714481423037_1.png', img)# 显示图像
cv2.imshow('RAW Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

http://www.ppmy.cn/news/1447847.html

相关文章

oracle 归档日志删除策略

未设置归档删除策略时, rman target / delete archivelog all; 可以直接删除归档。 如果设置了归档删除策略,delete archivelog all; 不能删除。如果加上 force 关键字可以删除。 RMAN> configure archivelog deletion policy to backed up 1 …

linux系列—— 使用systemd 的单元文件来定义如何挂载一个文件系统

使用systemd 的单元文件来定义如何挂载一个文件系统 1.打开文件2.写入内容3.启动4.解释 1.打开文件 sudo gedit /etc/systemd/system/your-unit-file-name.mount2.写入内容 [Unit] Description mount disk[Mount] What /dev/nvmexxxx Where /mnt/cf Type ntfs Options d…

【C 数据结构】二叉树

文章目录 【 1. 基本原理 】1.1 二叉树的性质1.2 满二叉树1.3 完全二叉树 【 2. 二叉树的顺序存储结构 】2.1 完全二叉树的顺序存储2.2 普通二叉树的顺序存储2.3 完全二叉树的还原 【 3. 二叉树的链式存储结构 】【 4. 二叉树的先序遍历 】4.1 递归实现4.2 非递归实现 【 5. 二…

基于昇腾AI | 英码科技EA500I使用AscendCL实现垃圾分类和视频物体分类应用

现如今,人工智能迅猛发展,AI赋能产业发展的速度正在加快,“AI”的需求蜂拥而来,但AI应用快速落地的过程中仍存在很大的挑战:向下需要适配的硬件,向上需要完善的技术支持,两者缺一不可。 基于此&…

【力扣周赛】第394场周赛

文章目录 1.统计特殊字母的数量2.使矩阵满足条件的最少操作次数 1.统计特殊字母的数量 题目链接 🍎该题涉及的小技巧:🐥 🐧①大写字母和对应的小写字母低5位都是相等的; 🐧②大写字母ASCII二进制第 6 位…

支持企业级 AI 应用,IT 基础架构应具备哪些能力?有哪些解决方案?

随着越来越多大语言模型(LLM)在行业落地,不少企业已开始进行生成式 AI 应用的试点、开发,或在生产环境中试用 AI 应用。这些应用场景不仅要求强大的算力,还非常考验 IT 基础设施对 GPU 的支持能力、资源调度灵活性、混…

Spring Boot集成Spring AI实现快速接入openAI

1.什么是Spring AI? Spring AI API 涵盖了广泛的功能。每个主要功能都在其专门的部分中进行了详细介绍。为了提供概述,可以使用以下关键功能: 跨 AI 提供商的可移植 API,用于聊天、文本到图像和嵌入模型。支持同步和流 API 选项。…

原生 php 实现redis缓存配置和使用方法

在 PHP 中实现 Redis 缓存的配置和方法,首先需要确保你的服务器上安装了 Redis,并且 PHP 安装了 Redis 扩展。以下是一个基本的步骤和示例: 1. 安装 Redis 和 PHP Redis 扩展 Redis 安装:根据你的服务器操作系统和配置&#xff…