java读取16位深png_读取16位灰度TIFF
我正在尝试使用小型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.位深和色深 位深:即在某一分辨率下,每一个像素点可以有多少种色彩来描述,单位为"bit"(位).典型的色深是8-bit.16-bit.24-bit和32-bit ...
- 2021-01-12 图像的大小计算 位深和色深
图像的大小计算 1.位深和色深 位深:即在某一分辨率下,每一个像素点可以有多少种色彩来描述,单位为"bit"(位).典型的色深是8-bit.16-bit.24-bit和32-bit ...
- 【PIL】图像分割竞赛中8位深调色板模式的mask读取与保存(PASCAL VOC)
[PIL]图像分割竞赛中8位深调色板模式的mask读取与保存(PASCAL VOC) 目录: [PIL]图像分割竞赛中8位深调色板模式的mask读取与保存(PASCAL VOC) 1.调色板图像原理 ...
- 24位深的bmp图片转换为16位深RGB565格式的bmp图片源码
/**24位深的bmp图片转换为16位深RGB565格式的bmp图片**/ #include <iostream> #include <stdio.h> #include &l ...
- 8位深, 16位深,24位深,32位深图片显示原理及对比
我们都知道一张图片可以保存为很多种不同的格式,比如bmp/png/jpeg/gif等等.这个是从文件格式的角度看,我们抛开文件格式,看图片本身,我们可以分为8位, 16位, 24位, 32位等. 单击 ...
- zxing.net 0.16.8生成二维码,读取二维码,读取多个二维码 c#
更新到新版本,报错.老版本的函数发现少了很多.把少的文件添加到目录中,发现可以用了. using System.Diagnostics; using System.Text; using ZXing; ...
- java 中向文本写入和读取hashmap_就靠这一篇HashMap的讲解,我与头条面试官聊了一个小时。...
预备知识 位运算知识(更多资料私信"学习"免费获取) 位运算操作是由处理器支持的底层操作,底层硬件只支持01这样的数字,因此位运算运行速度很快.尽管现代计算机处理器拥有了更长的指令 ...
- java怎么读取二进制_Java如何实现读取二进制文件
Java如何实现读取二进制文件 发布时间:2020-11-10 16:19:46 来源:亿速云 阅读:83 作者:Leah 这篇文章运用简单易懂的例子给大家介绍Java如何实现读取二进制文件,内容非常 ...
- 24位真彩色图像转换为16位高彩色图像的实现方法及效果改进
本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/p/3453569.html ...
最新文章
- ORM是进化还是倒退?
- Mysql使用binlog恢复数据解决误操作问题的两种方法
- php excel 下拉菜单,使用 PHPExcel 遇到的一个问题:下拉列表的数据来源过长时,显示了别的正常的下拉列表的数据来源...
- 古典绘画水墨文化艺术插图手绘合集,再也不愁没有设计灵感!
- base64转图片_从一道面试题说起:GET 请求能传图片吗?
- DBCP与C3P0连接池组件
- canny检测的matlab,canny边缘测试及matlab实现
- 基于XP系统的asp.net运行环境的安装与配置
- 赵雄飞uc讲解20110216
- 报错:further occurrences of HTTP request parsing errors will be logged at DEBUG level
- 程序员去面试的梗!面试官:“哦了,明天来上班吧”
- Java_Java多线程_Java线程池核心参数 与 手动创建线程池
- 904-线程池项目死锁问题分析
- 新的机械硬盘怎么测试软件,机械硬盘怎么判断是否全新(有没有什么软件)
- 纽约州立大学水牛城分校计算机科学专业,纽约州立大学水牛城分校会不会不容易毕业?...
- 服务器和普通电脑有什么区别?
- SourceTree跳过注册安装使用
- getenv、setenv函数(获取和设置系统环境变量) 与 环境变量
- linux mt命令,Cheat—— 给Linux初学者和管理员一个终极命令行备忘单
- h5页面调用cmd命令并隐藏cmd弹窗