原文转自:

http://www.p-chao.com/ja/2016-09-27/matlab%E8%A7%A3%E6%9E%90pfm%E6%A0%BC%E5%BC%8F%E5%9B%BE%E5%83%8F/

关于pfm格式,从来没有官方权威的定义,但是常常在一些场合用到,如生物医学成像,红外成像等,尤其是其浮点方式的存储的位图使得其在科研和学习场合应用都很方便,Middlebury数据库中的视差图像就是以pfm格式进行存储的。

一、PMF格式

PMF格式主要有两部分组成:头、元数据。

头有三行:

第一行,标识灰度、彩色的头,PF代表彩色三通道,Pf代表灰度单通道。

第二行,标识图像大大小,行-列。

第三行,标识数,正数标识大端存储,负数标识小端存储,其绝对值为scale。

元数据:

就是紧密排列的浮点数,每个四字节,总体来数,就是和bmp位图很像。

二、PMF格式文件的查看

推荐一款工具cvkit,非常好用,还可以直接处理Middleburry双目图像生成立体图

三、Matlab读写pmf文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

function D = pfmread(filename_pfm)
fid = fopen(filename_pfm);
fscanf(fid,'%c',[1,3]);
cols = fscanf(fid,'%f',1);
rows = fscanf(fid,'%f',1);
fscanf(fid,'%f',1);
fscanf(fid,'%c',1);
D = fread(fid,[cols,rows],'single');
D(D == Inf) = 0;
D = rot90(D);
fclose(fid);
function pfmwrite(D, filename)
% assert(size(D, 3) == 1 & (isa(D, 'single') ));
[rows, cols] = size(D);
scale = -1.0/ max(max(D));
fid = fopen(filename, 'wb');
fprintf(fid, 'Pf\n');
fprintf(fid, '%d %d\n', cols, rows);
fprintf(fid, '%f\n', scale);
%fscanf(fid, '%c', 1);
fwrite(fid, D(end:-1:1, :)', 'single');
fclose(fid);
end

Matlab读取pfm文件相关推荐

  1. Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决

    Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决 参考文章: (1)Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决 (2)https://www.cn ...

  2. matlab将txt数据分类,MATLAB读取txt文件,txt里面有字符串和数值两种类型

    MATLAB读取txt文件,txt里面有字符串和数值两种类型 mip版  关注:96  答案:4  悬赏:30 解决时间 2021-01-29 08:48 已解决 2021-01-28 15:04 M ...

  3. matlab引用csv文件,如何用MATLAB读取csv文件

    如何使用Matlab读取csv文件 在Matlab中,有专门读取csv文件的函数:csvread().在Matlab的帮助文档中,有对这个函数的详细解释. csvread()函数有三种使用方法: 1. ...

  4. matlab读取wav文件

    matlab读取wav文件 wavread audioread [y,Fs,bits]=wavread('1.wav'); [y,Fs]=audioread('1.wav'); wavread mat ...

  5. matlab 读取dbf文件

    前言 前几天需要对很多个ArcGIS输出的dbf文件做字段计算,但是!用模型构建器ArcGIS老是甭!崩得人心态都要都要崩了!后来师姐点醒了我!把它当作单纯的表格,在数组里算不就好了?! 一.直接用x ...

  6. matlab网页视频流,使用Matlab读取视频流文件

    Matlab中对图像和视频流的读取还是很方便的,但是由于不常用Matlab读取视频流(这家伙处理能力较OpenCV还是慢些)偶有小忘,这次有在工作中遇到特此记录一下,Matlab的help文档关于视频 ...

  7. matlab读取cvs文件的几种方法

    matlab读取CVS文件的几种方法: 1,实用csvread()函数 csvread()函数有三种使用方法: 1.M = csvread('filename') 2.M = csvread('fil ...

  8. matlab excel操作,Matlab读取excel文件里数据的操作流程

    亲们入手Matlab软件过程里会读取excel文件里数据吗?下面小编就提供了Matlab读取excel文件里数据的操作流程,有需要的朋友一起来看看吧. 读取sheet1中的所有数据 以03版excel ...

  9. ncl批量处理多个nc文件_利用MATLAB读取NC文件并绘图

    最近需要对很多NC 文件进行绘图,通常情况下,我一直用GMT,不过不知道为什么,笔记本上的GMT 用不了了,可能是版本的问题,但是我下了很多版本都无法使用,画出来的图都有问题.由于笔记本安装硬盘也就2 ...

最新文章

  1. linux运行raxml,RAxML安装
  2. 结构化方法与面向对象方法的比较
  3. 上海一百多个数据中心每年消耗全市1.6%的电,将优胜劣汰
  4. nusoap php 7,nusoap-用php的NuSoap 访问webservice遇到的问题。
  5. 【不了解你就OUT了】云原生基本原则
  6. 从714里连续减去6减几次得0_数学干货 | 小学数学1—6年级基础知识整理 ,预习复习都能用...
  7. 构造函数的五种继承方法
  8. ASP.Net学习笔记008--ASP.Net揭秘之Input版自增补充说明
  9. 算法笔记_面试题_5.验证二叉搜索树
  10. 免费复制百度文库的方法
  11. 人工智能之启发式搜索算法
  12. DHCP/Netbios
  13. 动漫人物各种角度的画法大合集
  14. SimCSE 对比学习方法
  15. python安装包下载及安装教程
  16. JVM下篇:性能监控与调优篇
  17. htons(), htonl(), ntohs(), ntohl()
  18. 电子信息 物联网 微电子等专业毕业设计选题表1-20
  19. 2010年01月读书单
  20. mac下安装nvm以及node

热门文章

  1. Linux 查看文件的内容 - head、tail、cat、more、less
  2. 多媒体的一些基本概念
  3. 2021年安全员-B证报名考试及安全员-B证考试报名
  4. 仿微信新版沉浸式效果,解决状态栏蒙灰,遮罩问题。
  5. 2019-1-29-win10-uwp-使用-Microsoft.Graph-发送邮件
  6. 哈尔滨工程大学计算机调剂信息,2018年哈尔滨工程大学信息与通信工程学院考研调剂信息:信息与通信工程、电子与通信工程方向...
  7. realsense D435获取RGB-D数据集-制作.klg文件
  8. 自行实现ONVIF协议网络摄像机(IPC)开发(0):专栏开篇
  9. 单用户登录记录互踢下线思路
  10. 【笔记】css实现文字横向排列/竖向排列