The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B7. Beijing 2008
4) Rendering by the fragment shader.
5) Download the texture which stores the rendering result to
the system memory.
When
2 4 .
— K < H < —71 ‘
3 3
5. THE TRANSFORMED DOMAIN FUSION ON GPU
This paper mainly analyses IHS transform fusion and DWT
fusion.
G=/a+ S-c°s(/f- 2 */3))
cos(/r - H)
R = I(l-S)
B = 31-R-G
5.1 The IHS transform fusion on GPU
There are two kinds of color coordinate systems (or called color
space) widely used in image processing: ® Color space
comprised by Red, Green and Blue, which is called RGB space;
(D IHS model, which is comprised by Intensity, Hue and
Saturation. The transformation between RGB space and IHS
space is called IHS transform 131 . The 3 components of IHS
space which have their independency can be controlled
separately and describe the color feature exactly. The process of
IHS is as follow:
When
— n<H<2n'-
3
S cos(H — 4tt /3)
cos(5;r / 3 - H)
G = I(\-S)
R = 31 - B -G
(3)
(4)
Normalize the original pixel value R 0 •. G 0 > Bo’
R=Ro/L, G=G(/L, B=B(JL;
Where, L is the gray level of image.
In forward transformation, the values of L H> S are calculated.
When R=G=B\ S=H= 0, I=R;
Otherwise:
I =
S =
h =
^(R + B + G)
1-min (R,G,B)/I
R-G/2-B/2
arccos
Vi? 2 +G 2 +B 2 -RG-GB-RB
(1)
Firstly, according to packing method 2, RGB 3-bands multi-
spectral image with low resolution is loaded into three textures,
and then FBO is created and bound with 6 frame buffers, whose
binding points are LCOLORATTACHMENTOEXT ,
GLCOLORATTACHMENT1 EXT
GL COLOR ATTACHMENT5 EXT. Each frame buffer is
corresponding with an output texture.
Secondly, forward transformation is executed by a shader in one
circulation. In this paper, shaders are implemented by OpenGL
Shading Language (GLSL), and RGB 3-bands multi-spectral
image with low resolution is regarded as input texture. Set the
number of color buffer area to be 3 by Draw Buffers Extension
and the buffers are GLCOLORATTACHMENTOEXT,
GLCOLORATTACHMENT 1 EXT,
GLCOLORATTACHMENT2 EXT, which are used to store
I, H, S. In this paper, according to IHS transformation fusion
model, two shaders are designed to execute the forward and
inverse transformation.
When G>=B: H=h and when G<B: H =2 k - h .
Histogram matching, the grayscale of high resolution
panchromatic image is stretched to make the average of its
grayscale and summation of variance identical with the I
component of IHS space.
In inverse transformation, the stretched high resolution image is
regarded as new I component into calculation. The RGB values
of original space are computed and the inverse transformation is
as follow:
When 0 < H < — 7r '■
3
R = I(l + S co&(H) )
cos(;r / 3 - H)
B = 7(1 -S)
G = 31-R-B
In the first rendering, forward transformation shader is used and
destination buffer will obtain values of 3 components I, H, S. It
is not suitable for the algorithms which need to store the data
when exporting statistics or measurements to be executed in
GPU, so histogram matching is handled by CPU. Download the
buffer data which store I compenent to system memory and
execute histogram matching with high resolution panchromatic
image. The data in I are normalized, firstly, we transform the
data in I to original grayscale. After matching, the stretched
high resolution image is normalized and regarded as new I
component to load into texture. At the same time, the buffers
that store H, S components are treated as source buffer (put the
texture data and new I component data together to be input
stream in the second rendering) and
GLCOLORATTACHMENT3EXT
GLCOLORATT ACHMENT 4_EXT
GLCOLORATTACHMENT5EXT are treated as destination
buffers. In the second rendering, inverse transformation shader
is used, and the data in destination buffer are downloaded into
system to finish IHS fusion. The process of calculation is
described by figure 3.