博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MATLAB解析PFM格式图像
阅读量:4630 次
发布时间:2019-06-09

本文共 1074 字,大约阅读时间需要 3 分钟。

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格式文件的查看

        推荐一款工具,非常好用,还可以直接处理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

  

转载于:https://www.cnblogs.com/LewisLEO/p/10513021.html

你可能感兴趣的文章
web开发基础
查看>>
java——逻辑运算符与(&和&&)或(|和||)
查看>>
iPhone App开发导航条(Navigation Bar)素材PSD下载
查看>>
jQuery中的事件机制深入浅出
查看>>
当前上下文中不存在viewbag
查看>>
Android拷贝工程不覆盖原工程的配置方法
查看>>
linux安装配置postgres及使用dblink
查看>>
ApacheBench(ab)使用详解
查看>>
SSH框架搭建笔记
查看>>
nginx语法
查看>>
存储过程和函数 PROCEDURE & FUNCTION
查看>>
笔试真题解析 ALBB-2015 算法project师实习生机试
查看>>
配置hadoop集群一
查看>>
SQL练习
查看>>
Python之迭代器,生成器与装饰器
查看>>
eclipse 出现user operation is waiting
查看>>
microsoft 为microbit.org 设计的课程
查看>>
calico
查看>>
给iframe绑定事件
查看>>
创建一个没有边框的并添加自定义文字的UISegmentedControl
查看>>