PRO decomp5,cim,header,dim,helpp=helpp,errmsg=errmsg ; ON_ERROR, 2 errstr = '' ;--------------------------------------------------------------------------- ; check some conditions ;--------------------------------------------------------------------------- IF KEYWORD_SET(helpp) THEN GOTO,help_label IF N_PARAMS() LT 3 THEN BEGIN errstr = ' Parameter Error - need 3 Parameter' GOTO,help_label ENDIF cmpsheme = comprm(header) IF cmpsheme(0) NE 5 THEN BEGIN errstr = ' Not the right Method for decompressing' GOTO,handle_error ENDIF ;--------------------------------------------------------------------------- ; get compression parameters and size of image ;--------------------------------------------------------------------------- p2 = cmp2(header) & p2=p2(0) p3 = cmp3(header) & p3=p3(0) sizeofimage = SIZE(cim) spec = sizeofimage(1) spat = sizeofimage(2) ;--------------------------------------------------------------------------- ; create new uncompressed image ;--------------------------------------------------------------------------- dim = LONARR(spec, spat) ;--------------------------------------------------------------------------- ; compute decompression levels ;--------------------------------------------------------------------------- scal = 255./ALOG10((p2-p3) > 255) FOR k=-255, -1 DO IF (-k EQ ROUND(ALOG10(-k)*scal)) THEN lev = -k ;PRINT, ' Level =', lev, ' Scale =', scal ;--------------------------------------------------------------------------- ; decompress ;--------------------------------------------------------------------------- glev = WHERE(cim GT lev, gcnt) llev = WHERE(cim LE lev, lcnt) IF gcnt GT 0 THEN dim(glev) = ROUND(10^(cim(glev)/scal)+p3) IF lcnt GT 0 THEN dim(llev) = cim(llev)+p3 RETURN help_label: PRINT,' ' PRINT,' Usage of DECOMP5 : PRINT,' DECOMP5,compressed_image,binary_header,decompressed_image PRINT,' ' PRINT,' Input - compressedimage,binary_header' PRINT,' Output - decompressed_image' PRINT,' ' handle_error: IF errstr NE '' THEN MESSAGE,errstr,/cont errmsg = errstr END ;--------------------------------------------------------------------------- ; End of 'DECOMP5.PRO'. ;---------------------------------------------------------------------------