一个Java写的用来构建金字塔影像的Bitmap类
cheungmine
2012
下面每个图像都是256x256像素。目的就是把这4幅影像合成一个256x256的图像,即:
Ln+1 = Fn(00, 01, 10, 11);
Ln+1表示第n+1层金字塔图像块。它是在第n层金字塔的基础上创建的。
处理前的第n层金字塔(4个瓦片):
00 | 01
----------
10 | 11
处理后的第n+1层金字塔(1个瓦片):
(1) 最邻近点采样得到的 (2) 4像素取平均值得到的(双线性差值得特例)
我写的Java源代码:
测试代码:
结论:
需要注意的是,Java的byte是有符号的,而像素的值是无符号的,需要(见calcPixel)
int iv = bv&0xff;
处理以变成无符号的.这个小小的BUG折腾我一天时间.最后把像素打印出来一个个分析才知道原来Java这么恶心.
同样功能的代码在C中需要100行的话,Java里就需要200行.无语啊!
cheungmine
- 1楼gisfun6小时前
- 2个字,牛X.n怎么你也对java来兴趣了,用java写这个东东。
- Re: sheismylife1小时前
- 回复gisfunn那是因为他要用Hadoop,那个玩意建立在Java之上。他迟早要脱离Hadoop,抛弃Java. :)