opencv 存储像素值为浮点数的图像 (.tiff)

2024-04-23 08:12

本文主要是介绍opencv 存储像素值为浮点数的图像 (.tiff),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在存储32CF1格式的深度图像时,怎么也存储不对

  • 存储成jpg格式的,会乱码。be like 13.6的数据存储之后再读取变成…e-30
  • 存储成png格式时,会自动把浮点数转换成整数。13.6的数据读取之后就变成14了
  • 直接把深度图片存储成.npy格式python处理很简单,但是需要c++来处理后续数据,c++弄numpy需要第三方库很麻烦
  • 查阅资料才发现可以通过tiff来存储像素值为浮点数的图片,.tiff/.tifpythonc++的opencv库中都能实现

python存储并读取tiff图片

pip install Pillow
 #为了防止和rosmsg的Image重复
from PIL import Image as PILImage# 存储
depth_image = bridge.imgmsg_to_cv2(data, "32FC1") 
depth_name = "depth.tiff"
depth_tiff = PILImage.fromarray(depth_image)
depth_tiff.save(depth_name)#读取with PILImage.open("depth.tiff") as img:print(img.getpixel((20,20)))

c++存储并读取tiff图片

//存储// 读取
string depth_path1 = "/home/tju/catkin_ws_multi_vins/scripts/data/pic_vins_pose/iris_0/images/1713792937.82_depth.tiff";
Mat depth1 = imread ( depth_path1, IMREAD_UNCHANGED );
cout << "depth_size " << depth1.cols << " " << depth1.rows <<endl;
float depth_value = depth1.at<float>(20, 20);
cout << "depth value " << depth_value << endl; 

这篇关于opencv 存储像素值为浮点数的图像 (.tiff)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/928246

相关文章

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文