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

📄 gal_flat.pro

📁 basic median filter simulation
💻 PRO
字号:
FUNCTION GAL_FLAT,IMAGE,ANG,INC,CEN,INTERP = interp;+; NAME:;	GAL_FLAT;; PURPOSE:;	Transforms the image of a galaxy so that the galaxy appears face-on; EXPLANATION:;	Either a nearest-neighbor approximations or a bilinear interpolation ;	may  be used.;; CALLING SEQUENCE:;	RESULT = GAL_FLAT( image, ang, inc, [, cen, /INTERP ] )  ;; INPUTS:   ;	IMAGE  - Image to be transformed;	ANG  - Angle of major axis, counterclockwise from Y-axis, degrees;		For an image in standard orientation (North up, East left);		this is the Position Angle;	INC - Angle of inclination of galaxy, degrees;; OPTIONAL INPUTS:;	CEN - Two element vector giving the X and Y position of galaxy center;		If not supplied, then the galaxy center is assumed to coincide;		 with the image center;; INPUT KEYWORDS:;	INTERP - If present, and non-zero, then bilinear interpolation will be;		performed.  Otherwise a nearest neighbor approximation  is used.;; OUTPUTS:;	RESULT - the transformed image, same dimensions and type as IMAGE;; METHOD:;	A set of 4 equal spaced control points are corrected for inclination;	using the procedure POLYWARP.   These control points are used by ;	POLY_2D to correct the whole image.;; REVISION HISTORY:;	Written by R. S. Hill, SASC Technologies Inc., 4 December 1985;	Code cleaned up a bit    W. Landsman      December 1992;	Converted to IDL V5.0   W. Landsman   September 1997;-  if ( N_params() lt 3 ) then begin        print,'Syntax - result = gal_flat( image, ang, inc, [ cen, /INTERP ])'      print,'ANG - Position Angle of major axis (degrees)'                      print,'INC - Inclination of galaxy (degrees)'      return, -1  endif   if not keyword_set( INTERP ) then interp = 0  angr = (ang+90)/!RADEG  tanang = tan(angr)  cosang = cos(angr)  cosinc = cos(inc/!RADEG);                                    Parameters of image  dims = SIZE(image)  if N_elements(cen) NE 2 then begin       xcen = dims[1]/2.0                  ;Center      ycen = dims[2]/2.0      if not !QUIET then message,'Galaxy nucleus assumed in image center',/CONT  endif else begin      xcen = cen[0]      ycen = cen[1]  endelse;                                    Equation of rotation axis  b = ycen - xcen*tanang;                                    Fiducial grid (as in ROT_INT)     gridx = xcen + [ [-1,1], [-1,1] ] * dims[1]/6.0  gridy = ycen + [ [-1,-1], [1,1] ] * dims[2]/6.0      ;                                    Distorted version of grid  yprime = gridx*tanang + b            ;Equation of major axis  r0 = (gridy-yprime)*cos(angr)        ;Dist of control pts to major axis  delr = r0*(1.0-cosinc)               ;Correct distance for inclination  dely = -delr*cos(angr)                 delx =  delr*sin(angr)  distx = gridx + delx  disty = gridy + dely;                                    Parameters of undistorted grid  x0 = dims[1]/3.0  y0 = dims[2]/3.0  dx = x0                              ;In this case only  dy = y0;                                    Do it  polywarp, distx, disty, gridx, gridy, 1, kx, ky  RETURN,poly_2d( image, kx, ky, interp, MISSING = 0)  end  

⌨️ 快捷键说明

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