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文件

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. 开源Math.NET基础数学类库使用(03)C#解析Matlab的mat格式

    原文:[原创]开源Math.NET基础数学类库使用(03)C#解析Matlab的mat格式 开源Math.NET基础数学类库使用系列文章总目录:   1.开源.NET基础数学计算组件Math.NET( ...

  2. PCB javascript解析Gerber274X格式实现方法

    解析钻Gerber274X格式前首先得了解此格式,这样才能更好的解析呀. 一个Gerber274X里面包含的基本信息如下: 1.单位:公式mm,英制inch 2.省零方式:前省零,后省零 3.坐标方式 ...

  3. WP8解析JSON格式(使用DataContractJsonSerializer类)(推荐)

    DataContractJsonSerializer是.NET自带的类,在解析JSON格式的时候使用起来方便快捷,至于生成方面由于暂时没用到就没去看了.使用需要引用System.Runtime.Ser ...

  4. WP8解析JSON格式(使用Newtonsoft.Json包)

    DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式. 这里举一个简单的解析JSON格式的例子(更多JSON操作): { "response&q ...

  5. WP8解析XML格式文件

    DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式,如果要返回XML格式的话,需要在加上format=xml. 这里举一个简单的解析XML格式的例子(更 ...

  6. NSXMLParser解析xml格式

    NSXMLParser解析xml格式的数据 用法如下: 首先,NSXMLParser必须继续NSXMLParserDelegate协议 @interface XMLHelper : NSObject ...

  7. C语言解析Ini格式文件

    引用别人的博文: http://www.open-open.com/lib/view/open1402278076447.html 可以解析 INI 格式的字符串.解析文件.保存到文件. 下面是头文件 ...

  8. 解析json格式数据

    实现目标 读取文件中的json格式数据,一行为一条json格式数据.进行解析封装成实体类. 通过google的Gson对象解析json格式数据 我现在解析的json格式数据为: {",&qu ...

  9. 用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

随机推荐

  1. http协议的状态码(200,404,503)

    http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101( ...

  2. Problem 14

    Problem 14 # Problem_14.py """ The following iterative sequence is defined for the se ...

  3. TCP协议和UDP协议

    一:TCP(Transmission Control Protocol)  传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 第一次握手:主机A发送 ...

  4. iOS相册实现与AssetsLibrary框架使用

    概述 在iOS中如果想要获取手机相册里面的图片或者视频的话就要用到系统自带的AssetsLibrary框架,AssetsLibrary.framework中包含以下文件 #import <Ass ...

  5. Hadoop Word Count程序

    Hadoop Word Count程序 pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...

  6. 【LeetCode-面试算法经典-Java实现】【033-Search in Rotated Sorted Array(在旋转数组中搜索)】

    [033-Search in Rotated Sorted Array(在旋转数组中搜索)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Suppose a sort ...

  7. Win+X

    Win+X 方便的快捷键,可以快速使用命令行和运行!

  8. 英语发音规则---C字母

    英语发音规则---C字母 一.总结 一句话总结: 1.C发[k]音? cake [keɪk] n. 蛋糕 coat [kəʊt] n. 外套 music ['mjuːzɪk] n. 音乐,乐曲 pic ...

  9. 杂项:MSP(管理服务提供商)

    ylbtech-杂项:MSP(管理服务提供商) 随着外包市场的日益成熟,为了满足企业的需求,一个全新的业务方向被开发出来—MSP.MSP采用业界领先的系统管理技术,由经验丰富的系统管理专家通过WAN为 ...

  10. java.lang.NoClassDefFoundError: javax/wsdl/extensions/ElementExtensible

    转自:https://blog.csdn.net/zt13258579889/article/details/82688723 严重: Context initialization failed or ...