1

我在办公室使用 MATLAB,在家使用 Octave。尽管它们非常相似,但我试图做一些我认为非常容易和明显的事情,但发现它真的很烦人。我不知道如何在 Octave 中导入 TIFF 图像。我知道 MATLABgeotiffread函数不存在,但我认为会有另一种方法。

我也可以跳过导入它们,因为在某些情况下我可以使用该imread函数,但第二个问题是我找不到编写地理参考 TIFF 文件的方法(在 MATLAB 中,我通常geotiffwrite使用geotiffinfo内部输入调用)。我的 TIFF 文件通常是 8 位无符号整数或 32 位有符号整数。我希望有人能提出解决这个问题的方法。我也看到了这个线程,但不明白是否可以使用 Ashish 在 Octave 中提出的代码。

4

2 回答 2

3

您可能想查看 Octave 中的映射库。您还可以使用栅格函数来处理 GeoTiffs

例子:

pkg load mapping
filename=”C:\\sl\SDK\\DTED\\n45_w122_1arc_v2.tif”
rasterinfo (filename)
rasterdraw (filename)
于 2019-05-17T23:56:58.557 回答
2

简短的回答是你不能在 Octave 中开箱即用。但这并不是因为不可能做到。这仅仅是因为还没有人费心去实现它。作为一款免费软件,Octave 具有用户愿意花费时间或金钱来实现的功能。

关于写入签名的 32 位图像

从 3.8.1 版开始,Octave 使用 GraphicsMagick 或 ImageMagick 来处理图像的读取和写入。这引入了一些问题。数字 1 是您的精度仅限于您构建 GraphicsMagick 的方式(它的量子深度选项)。此外,您只能写无符号整数。希望这在未来会有所改变,但由于没有多少用户需要它,所以直到现在都是这样。

与geotiff打交道

如果您了解 C++,您可以自己编写这些函数。这应该不会太难,因为已经有libgeotiff,一个用于它的 C 库。您需要编写一个包装器作为 Octave 八进制函数(当然,如果您不了解 C 或 C++,那么这个“ only ”会变成很多工作)。

于 2014-06-08T16:59:01.973 回答