我正在用 C++ 编写图像的小波表示,以便快速访问。什么是适合小波的数据结构?
这是一个典型的小波,由不同大小的图像组成。这取决于高度和方向的数量。
1) 高通:512x512
2) 带方向的子带:256x256 256x256 256x256 256x256
3)其他子带:128x128 128x128 128x128 128x128
...
4) 低通:8x8
我应该使用递归数据结构吗?还是简单地将所有内容转换为一维数组?
答案是:视情况而定。从编程抽象的角度来看,为每个子图像创建单独的数组可能是最简单的。我会让它们成为你在抽象中作为二维访问的一维数组。抵消的冲动是分配一个大数组并从其中的一部分中取出,基本上是在做你自己的内存管理。很多 C++ 程序大部分时间都花在 malloc()/free() 上,所以这看起来很吸引人,但我认为这不值得。把时间花在算法上,而不是工具上。稍后,如果您需要调整它以获得最后一点性能,您可以这样做。
希望谈论相同的主题,我认为小波矩阵文章会澄清。