首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用geotiff解释geotiff条带数据

如何使用geotiff解释geotiff条带数据
EN

Stack Overflow用户
提问于 2017-06-08 04:11:47
回答 0查看 148关注 0票数 0

我正在编写一个需要读取4通道geotiff图像的代码,在本例中是16位图像(数据实际上是12位分辨率,但编码为16位)。

我的主要目标是读取像素值以供以后使用。在这个问题"How 16bits-RGBA image pixels are interlaced?"中,我尝试使用TIFFReadEncodedStrip而不是TIFFRGBAImage,如下所示:

代码语言:javascript
复制
buf = (unsigned char*)(_TIFFmalloc(TIFFStripSize(tif)));
TIFFReadEncodedStrip(tif,strip,buf,(tsize_t)-1);
uint32 *p0 = buf;
printf("strip %d = %d \n", strip, *p0);

对于我打印的p0值,应该是实际的图像数据,我得到了:

代码语言:javascript
复制
strip 0 = 20382000

检查我的图像中的标签,我发现:

代码语言:javascript
复制
Rows per strip: 1  
Samples per pixel: 4  
Bits per sample: 16 
Image orientation: 1 (bottom left)  
Size of buffer: 8 bytes

所以我假设我从缓冲区得到的p0值是图像第一个通道中左上角的四个像素。我不明白的是,我必须如何解释我得到的p0条带的值。

在matlab中打开图像并检查每个通道中的第一个像素(左上角),我得到了304,311,314和314,它们似乎不是我得到的p0值上的任何东西。

我不知道是因为12位的分辨率,还是我必须把它转换成uint32以外的类型,但我就是搞不懂这个数字。

有人能帮助破译这个数字吗?它是否对应于左下角的前四个像素?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44421963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档