我正在尝试使用小型C程序读取16位灰度TIFF文件(BitsPerSample = 16),以转换为浮点数数组以供进一步分析 . 根据 Headers 信息,像素数据在2048×2048像素的单个条带中 . 编码是小端的 .

有了这个头信息,我希望能够读取2048x2048x2字节的单个块并将其解释为2048x2048个2字节整数 . 我实际得到的是每张1024x1024像素的图片split into four quadrants,其中较低的两张仅包含零 . 前两个象限中的每一个看起来都像我预期的整个画面看起来:alt text http://users.aber.ac.uk/ruw/unlinked/15_inRT_0p457.png

如果我读了same file into Gimp或Imagemagick,两个都告诉我他们必须减少到8位(这对我没有帮助 - 我需要全范围),但像素出现在正确的位置:alt text http://users.aber.ac.uk/ruw/unlinked/15_inRT_0p457_gimp.png这表明我对如何在一个条带内排列数据的想法是错误的 . 另一方面,文件必须根据 Headers 信息正确格式化,否则Gimp不会正确 . 我哪里错了?

tiffdump的输出:

15_inRT_0p457.tiff:

魔术:0x4949版本:0x2a

目录0:偏移8(0x8)下一个0(0)

ImageWidth(256)LONG(4)1 <2048>

ImageLength(257)LONG(4)1 <2048>

BitsPerSample(258)SHORT(3)1 <16>

压缩(259)短(3)1 <1>

光度学(262)短(3)1 <1>

StripOffsets(273)LONG(4)1 <4096>

方向(274)短(3)1 <1>

RowsPerStrip(278)LONG(4)1 <2048>

StripByteCounts(279)LONG(4)1 <8388608>

XResolution(282)RATIONAL(5)1 <126.582>

YResolution(283)RATIONAL(5)1 <126.582>

ResolutionUnit(296)SHORT(3)1 <3>

34710(0x8796)LONG(4)1 <0>

(标记34710是摄像机信息;为了确保这不会将整个范围从图像文件目录的末尾归零到0x1000处的数据开始,并且实际上没有任何区别 . )

java读取16位深png_读取16位灰度TIFF相关推荐

  1. 图像的大小计算 位深和色深

    图像的大小计算 1.位深和色深 位深:即在某一分辨率下,每一个像素点可以有多少种色彩来描述,单位为"bit"(位).典型的色深是8-bit.16-bit.24-bit和32-bit ...

  2. 2021-01-12 图像的大小计算 位深和色深

    图像的大小计算 1.位深和色深 位深:即在某一分辨率下,每一个像素点可以有多少种色彩来描述,单位为"bit"(位).典型的色深是8-bit.16-bit.24-bit和32-bit ...

  3. 【PIL】图像分割竞赛中8位深调色板模式的mask读取与保存(PASCAL VOC)

    [PIL]图像分割竞赛中8位深调色板模式的mask读取与保存(PASCAL VOC) 目录: [PIL]图像分割竞赛中8位深调色板模式的mask读取与保存(PASCAL VOC) 1.调色板图像原理 ...

  4. 24位深的bmp图片转换为16位深RGB565格式的bmp图片源码

    /**24位深的bmp图片转换为16位深RGB565格式的bmp图片**/ #include <iostream> #include <stdio.h> #include &l ...

  5. 8位深, 16位深,24位深,32位深图片显示原理及对比

    我们都知道一张图片可以保存为很多种不同的格式,比如bmp/png/jpeg/gif等等.这个是从文件格式的角度看,我们抛开文件格式,看图片本身,我们可以分为8位, 16位, 24位, 32位等. 单击 ...

  6. zxing.net 0.16.8生成二维码,读取二维码,读取多个二维码 c#

    更新到新版本,报错.老版本的函数发现少了很多.把少的文件添加到目录中,发现可以用了. using System.Diagnostics; using System.Text; using ZXing; ...

  7. java 中向文本写入和读取hashmap_就靠这一篇HashMap的讲解,我与头条面试官聊了一个小时。...

    预备知识 位运算知识(更多资料私信"学习"免费获取) 位运算操作是由处理器支持的底层操作,底层硬件只支持01这样的数字,因此位运算运行速度很快.尽管现代计算机处理器拥有了更长的指令 ...

  8. java怎么读取二进制_Java如何实现读取二进制文件

    Java如何实现读取二进制文件 发布时间:2020-11-10 16:19:46 来源:亿速云 阅读:83 作者:Leah 这篇文章运用简单易懂的例子给大家介绍Java如何实现读取二进制文件,内容非常 ...

  9. 24位真彩色图像转换为16位高彩色图像的实现方法及效果改进

    本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/p/3453569.html   ...

最新文章

  1. ORM是进化还是倒退?
  2. Mysql使用binlog恢复数据解决误操作问题的两种方法
  3. php excel 下拉菜单,使用 PHPExcel 遇到的一个问题:下拉列表的数据来源过长时,显示了别的正常的下拉列表的数据来源...
  4. 古典绘画水墨文化艺术插图手绘合集,再也不愁没有设计灵感!
  5. base64转图片_从一道面试题说起:GET 请求能传图片吗?
  6. DBCP与C3P0连接池组件
  7. canny检测的matlab,canny边缘测试及matlab实现
  8. 基于XP系统的asp.net运行环境的安装与配置
  9. 赵雄飞uc讲解20110216
  10. 报错:further occurrences of HTTP request parsing errors will be logged at DEBUG level
  11. 程序员去面试的梗!面试官:“哦了,明天来上班吧”
  12. Java_Java多线程_Java线程池核心参数 与 手动创建线程池
  13. 904-线程池项目死锁问题分析
  14. 新的机械硬盘怎么测试软件,机械硬盘怎么判断是否全新(有没有什么软件)
  15. 纽约州立大学水牛城分校计算机科学专业,纽约州立大学水牛城分校会不会不容易毕业?...
  16. 服务器和普通电脑有什么区别?
  17. SourceTree跳过注册安装使用
  18. getenv、setenv函数(获取和设置系统环境变量) 与 环境变量
  19. linux mt命令,Cheat—— 给Linux初学者和管理员一个终极命令行备忘单
  20. h5页面调用cmd命令并隐藏cmd弹窗

热门文章

  1. 音视频技术开发周刊 | 231
  2. Hotstar赛事直播编码组合优化
  3. LiveVideoStack线上交流分享 (十四) —— 深度学习在视频分析处理的实践
  4. 数据结构与算法之转圈打印矩阵和旋转正方形矩阵
  5. 是什么能让 APP 快速精准定位到我们的位置?
  6. FFMPEG结构体分析之AVStream
  7. nginx源码分析configure脚本详解
  8. 校验用户画像的准确性
  9. CNI:容器网络接口详解
  10. 内网穿透工具ngrok的使用