高效的TIFF瓦片提取C++

Jua*_*uan 8 c++ tiff extraction tile libtiff

我正在处理大约20000 x 20000像素的1gb大tiff图像.我需要在随机位置从图像中提取几个图块(大约300x300像素).

我尝试了以下解决方案:

  • Libtiff(我能找到的唯一低级库)提供了TIFFReadline(),但这意味着可以读取大约19700个不必要的像素.

  • 我实现了自己的tiff阅读器,它从图像中提取出一块瓷砖,而不需要读取不必要的像素.我预计它会更快,但对瓷砖的每一行进行搜索会使它变得非常慢.我也尝试读取包含我的磁贴的文件的所有行的缓冲区,然后从缓冲区中提取磁贴,但结果或多或少相同.

我想收到改善我的瓷砖提取工具的建议!

一切都是受欢迎的,也许你可以提出一个我可以使用的更高效的库,一些关于C/C++ I/O的技巧,一些针对我的需求的更高级别的策略等等.

问候,胡安