⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fitsrgb_to_tiff.pro

📁 basic median filter simulation
💻 PRO
字号:
 PRO FITSRGB_to_TIFF, path, rgb_files, tiff_name, BY_PIXEL=by_pixel, $                      PREVIEW=preview, RED=r_mix, GREEN=g_mix, BLUE=b_mix;+; NAME:;       FITSRGB_to_TIFF; PURPOSE:;       Combine separate red, green, and blue FITS images into TIFF format; EXPLANATION:;       The output TIFF (class R) file can have colors interleaved either;       by pixel or image.  The colour mix is also adjustable.;; CALLING SEQUENCE:;       FITSRGB_to_TIFF, path, rgb_files, tiff_name [,/BY_PIXEL, /PREVIEW,;                         RED= , GREEN =, BLUE =];; INPUTS:;       path = file system directory path to the RGB files required.;       rgb_files = string array with three components - the red FITS file;                   filename, the blue FITS file filename and the green FITS;                   file filename;; OUTPUTS:;       tiff_name = string containing name of tiff file to be produced;; OPTIONAL OUTPUT:;       Header = String array containing the header from the FITS file.;; OPTIONAL INPUT KEYWORDS:;       BY_PIXEL = This causes TIFF file RGB to be interleaved by pixel;                  rather than the default of by image.;       PREVIEW  = Allows a 24 bit image to be displayed on the screen;                  to check the colour mix.;       RED = Real number containing the fractional mix of red;       GREEN = Real number containing the fractional mix of green;       BLUE = Real number containing the fractional mix of blue;; EXAMPLE:;       Read three FITS files, 'red.fits', 'blue.fits' and 'green.fits' from;       the directory '/data/images/space' and output a TIFF file named;       'colour.tiff';;               IDL> FITSRGB_to_TIFF, '/data/images/space', ['red.fits', $;                    'blue.fits', 'green.fits'], 'colour.tiff';;       Read three FITS files, 'red.fits', 'blue.fits' and 'green.fits' from;       the current directory and output a TIFF file named '/images/out.tiff';       In this case, the red image is twice as strong as the green and the;       blue is a third more intense.  A preview on screen is also wanted.;;               IDL> FITSRGB_to_TIFF, '.', ['red.fits', $;                    'blue.fits', 'green.fits'], '/images/out.tiff', $;                    /PREVIEW, RED=0.5, GREEN=1.0, BLUE=0.666;;; RESTRICTIONS:;       (1) Limited to the ability of the routine READFITS;; NOTES:;       None;; PROCEDURES USED:;     Functions:   READFITS, CONCAT_DIR;     Procedures:  WRITE_TIFF;; MODIFICATION HISTORY:;     16th January 1995 - Written by Carl Shaw, Queen's University Belfast;	27 Jan 1995 - W. Landsman, Add CONCAT_DIR for VMS, Windows compatibility;	Converted to IDL V5.0   W. Landsman   September 1997;    Use WRITE_TIFF instead of obsolete TIFF_WRITE  W. Landsman  December 1998;    Cosmetic changes  W. Landsman    February 2000;-;;  Make sure user has supplied valid parameters; IF N_PARAMS() LT 3 THEN BEGIN      print, 'Syntax -  FITSRGB_to_TIFF, path, rgb_files, tiff_name'      print,'                     [/BY_PIXEL,/PREVIEW, RED=, GREEN=, BLUE= ]'      return ENDIF; IF N_ELEMENTS(rgb_files) LT 3 THEN $  MESSAGE, 'Three filenames for the colour components have not been supplied';  by_pixel =  KEYWORD_SET(BY_PIXEL); IF NOT KEYWORD_SET(r_mix) THEN r_mix = 1.0 IF NOT KEYWORD_SET(g_mix) THEN g_mix = 1.0 IF NOT KEYWORD_SET(b_mix) THEN b_mix = 1.0;;  Now load the colour components; fname = CONCAT_DIR( path, rgb_files ) red = READFITS( fname[0], /SILENT) green = READFITS( fname[1], /SILENT) blue = READFITS( fname[2], /SILENT);;  Data now needs to be scaled to the same byte range (0-255) and also;  scaled according to the RGB mix values supplied by the user; red = red[*,*] * r_mix green = green[*,*] * g_mix blue = blue[*,*] * b_mix          ;scale intensity by supplied mix; maxlim = MAX(red) > MAX(green) > MAX(blue)   ;max intensity minlim = MIN(red) < MIN(green) < MIN(blue)   ;min intensity red = BYTSCL(red, MIN=minlim, MAX=maxlim) green = BYTSCL(green, MIN=minlim, MAX=maxlim) blue = BYTSCL(blue, MIN=minlim, MAX=maxlim)  ;scale colours to same byte range;;  Preview image on window system if required; IF keyword_set(PREVIEW) THEN BEGIN  window, 0, colors=256  wset, 0  tv, color_quan(red, green, blue, r, g, b, colors=255)  tvlct, r, g, b ENDIF;; Now write out result as a tiff file; IF by_pixel THEN BEGIN  ;  ;  Interleave by pixel  ;  extent = SIZE(red)  xsize = extent[1]  ysize = extent[2]                       ;get image size  interarr = FLTARR(3, xsize, ysize, /NOZERO)      ;make interleaved array  interarr[0, *, *] = red  interarr[1, *, *] = green  interarr[2, *, *] = blue  ;  WRITE_TIFF, tiff_name, interarr  ; ENDIF ELSE BEGIN  ;  ;  Interleave by image  ;  WRITE_TIFF, tiff_name, RED=red, BLUE=blue, GREEN=green, PLANARCONFIG=2  ; ENDELSE; END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -