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; 

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 11:28:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 11:28:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 11:28:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 11:28:01       20 阅读

热门阅读

  1. 【ARMv9 DSU-120 系列 10 -- PMU 详细介绍】

    2024-04-26 11:28:01       14 阅读
  2. 工厂模式(Factory Pattern)

    2024-04-26 11:28:01       13 阅读
  3. 矿山自动驾驶技术点分析

    2024-04-26 11:28:01       13 阅读
  4. 【MySQL】创建和管理数据库

    2024-04-26 11:28:01       15 阅读
  5. SpringBoot之JdbcTemplate输出完整SQL日志

    2024-04-26 11:28:01       16 阅读
  6. 牛客Linux高并发服务器开发学习第五天

    2024-04-26 11:28:01       17 阅读
  7. C#:Winform界面中英文切换功能

    2024-04-26 11:28:01       15 阅读
  8. NPM详解

    2024-04-26 11:28:01       17 阅读
  9. Dockers数据卷Volume

    2024-04-26 11:28:01       12 阅读
  10. LeetCode 每日一题 ---- 【1146.快照数组】

    2024-04-26 11:28:01       15 阅读