微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 png8 而不是 png24 作为 RGB 高度图

如何解决使用 png8 而不是 png24 作为 RGB 高度图

我有一个 1 波段 DEM geotiff,以及一个转换高度 -> RGB 和 RGB -> 高度的公式(类似这样:https://docs.mapbox.com/help/troubleshooting/access-elevation-data)。

使用公式(和 GDAL/Python),我将我的 geotiff 转换为 3 个波段(R、G 和 B)geotiff,每个波段的值都在 0-255 范围内。

使用 mapnik / mod_tile,然后我将我的 geotiff 作为 PNG 图块提供给 Web 客户端。如果我将 mod_tile 设置为 24 位或 32 位 PNG,那么一切都很好。但是,如果我将它们作为 8 位 PNG 提供(以减小它们的大小),那么解码后的值会有些偏差(查看图像时我看不到差异,但是 RGB 值并不完全相同,因此弄乱了我解码的高度)。

我是否期望能够用 8 位 PNG 而不是 24/32 做我想做的事情(检索确切的 RGB 值),或者我对 8 位 PNG 有什么不明白的地方(如果是这样,我'必须深入研究 mod_tile 代码,我猜当我们询问 8 位时,它会生成 24 或 32,然后压缩)?

解决方法

不,您期望可以将任何 24 位值无损压缩为 8 位值是不对的。如果原始值中有超过 256 个不同的 24 位值,那么其中一些不同的值必然会映射到相同的 8 位值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。