[GRASSLIST:4086] Sharpening Lansat images

Hi all,

I've tried to sharpen some landsat images with HSV method to get a
Hi-Res true color composite. Not really very successful. After
sharpening, resultant colors are distorted (vegetation becomes blue)

In http://esibert.is-a-geek.net/sig/cartes/landsat/multi/compose/ I have
seen a sharpened true color composite with "good colors".

This website references to
http://www.cis.rit.edu/people/faculty/salvaggio/references/pdf/PERS1991v57n3p295-303.pdf)

This pdf document speaks about an HPF (high pass filter) method which
"distorted the spectral characteristics of the data the least" so I guess...

a)This HPF method was used to make the good color composite

b)This method seems to be the same as FF (filter fusion) method in
http://wwwcs.uni-paderborn.de/cs/ag-kao/de/persons/kao/pdfPapers/osee.pdf
where I've found this equation:

HiResImg=i.ifft{LPF{i.fft(LowResImage)+HPF{i.fft(PanImg)}}

However i.fft gives me a "ERROR: G_malloc: out of memory" message when
usin region settings from low-res raster, and gives me a segmentation
fault when using region settings from pan raster.

Not using i.fft and i.ifft works but gives me very ugly results

Questions are:

1) Is there really a sharpening method without color distortion?
2) Is this HPF method woeful?
3) What could I do?

Thanks in advance

Roman

The method that I have used with the most success is i.rgb.his, then i.his.rgb. The colors sometimes get a little screwy, but usually playing with the resultant bands using d.histogram and r.rescale can give you something useful. An order of operations that I have used is below to produce a fairly decent "true" color image with landsat.

combine bands 2 and 4 for more vivid greens and blues with

g.region rast=band2
r.mapcalc band2and4 = '(band2 + band4)/2'

i.rgb.his red_input=band3 green_input=band2and4 blue_input=band1 hue_output=hue saturation_output=sat intensity_output=int

g.region res=15
i.his.rgb hue_input=hue saturation_input=sat intensity_input=band8 red_output=red green_output=green blue_output=blue

r.colors color=grey map=red
r.colors color=grey map=green
r.colors color=grey map=blue

d.rgb r_map=red g_map=green b_map=blue

if things look a little off, use

d.erase blue
d.histogram red
then look at the curve and note where it drops off to zero on both ends. rescale your image with
r.rescale input=red output=red.rescale from=xx,xx to=0,255
repeat for blue and green

Good luck,
Ian

On Aug 3, 2004, at 11:55 AM, tatel@euskalnet.net wrote:

Hi all,

I've tried to sharpen some landsat images with HSV method to get a
Hi-Res true color composite. Not really very successful. After
sharpening, resultant colors are distorted (vegetation becomes blue)

In http://esibert.is-a-geek.net/sig/cartes/landsat/multi/compose/ I have
seen a sharpened true color composite with "good colors".

This website references to
http://www.cis.rit.edu/people/faculty/salvaggio/references/pdf/PERS1991v57n3p295-303.pdf)

This pdf document speaks about an HPF (high pass filter) method which
"distorted the spectral characteristics of the data the least" so I guess...

a)This HPF method was used to make the good color composite

b)This method seems to be the same as FF (filter fusion) method in
http://wwwcs.uni-paderborn.de/cs/ag-kao/de/persons/kao/pdfPapers/osee.pdf
where I've found this equation:

HiResImg=i.ifft{LPF{i.fft(LowResImage)+HPF{i.fft(PanImg)}}

However i.fft gives me a "ERROR: G_malloc: out of memory" message when
usin region settings from low-res raster, and gives me a segmentation
fault when using region settings from pan raster.

Not using i.fft and i.ifft works but gives me very ugly results

Questions are:

1) Is there really a sharpening method without color distortion?
2) Is this HPF method woeful?
3) What could I do?

Thanks in advance

Roman

On Tue, Aug 03, 2004 at 01:29:00PM -0700, Ian MacMillan wrote:

The method that I have used with the most success is i.rgb.his, then
i.his.rgb. The colors sometimes get a little screwy, but usually
playing with the resultant bands using d.histogram and r.rescale can
give you something useful. An order of operations that I have used is
below to produce a fairly decent "true" color image with landsat.

Another option is the Brovey transform, recently implemented
in GRASS 5.7:

i.fusion.brovey

I have written a bit for the upcoming Bangkok conference:
http://gisws.media.osaka-cu.ac.jp/grass04/viewabstract.php?id=37
-> PDF

See example Brovey transform results here (LANDSAT-7 and SRTM):
http://mpa.itc.it/rs/landsat7/index.html

Hope this helps,

Markus