GETZERNIKE
現在ロードされているレンズ ファイルのゼルニケ フリンジ係数、ゼルニケ標準係数、またはゼルニケ環状係数を波数の単位で計算し、それらをベクトル配列のいずれか (VEC1、VEC2、VEC3、または VEC4) に配置します。
構文 :
GETZERNIKE maxorder, wave, field, sampling, vector, zerntype, epsilon, reference
説明 :
maxorder 引数は、フリンジ係数の場合は 1 ~ 37、標準または環状係数の場合は 1 ~ 231 の任意の数 (以下の zemtype の説明を参照) で、目的の最も高次のゼルニケ項に対応します。wave および field は、それぞれ波長番号および視野番号を示す整数値です。sampling の値は、係数に合わせて使用されるグリッドのサイズを指定します。sampling は、1 (32 x 32)、2 (64 x 64) ... のように指定し、最大のサンプリング数は 2048 x 2048 です。vector 引数は、1 ~ 4 の整数値とし、データを配置するベクトル配列を指定します。zerntype は、「フリンジ」ゼルニケ項の場合は 0、「標準」ゼルニケ項の場合は 1、「環状」ゼルニケ項の場合は 2 です。これらの各タイプのゼルニケ項については、「[ゼルニケ フリンジ係数] (Zernike Fringe Coefficients)」、「[ゼルニケ標準係数] (Zernike Standard Coefficients)」、および「[ゼルニケ環状係数] (Zernike Annular Coefficients)」を参照してください。ゼルニケ環状係数の場合、epsilon は環状率です。この値はその他のゼルニケ タイプの場合は無視されます。光路差の基準を主光線にするには、reference の値をゼロにするか省略します。面の頂点を基準にするには 1 を使用します。有効範囲外の引数については、代わりに受け入れられる最も近い値が使用されます。
データは、次のフォーマットでベクトル配列のいずれかに返されます。ベクトル位置 1 : 波長数で表した主光線までの PV 値 (ピーク値と最小値の差)。 ベクトル位置 2 : 光路差がゼロであるラインに対する RMS 値を波長数で表した値 (この値は物理的に意味のあるものではありませんが、参考のため提供されています)。 ベクトル位置 3 : 主光線に対する RMS を波長数で表した値。 ベクトル位置 4 : 像のセントロイドに対する RMS 値を波長数で表した値 (これが、像質に関して最も物理的に意味のある数値です)。 ベクトル位置 5 : 波長数で表した偏差。 ベクトル位置 6 : ストレール比。 ベクトル位置 7 : フィット エラーの RMS 値を波長数で表した値。 ベクトル位置 8 : (任意の 1 点における) 最大フィット エラーを波長数で表した値。残りのベクトル位置には、実際のゼルニケ係数データが格納されます。たとえば、ゼルニケ項番号 1 はベクトル位置 9 に、ゼルニケ項番号 2 は位置 10 に格納されます (以下同様)。
例 :
! This macro computes the first 37 Zernike Fringe coefficients ! for the currently loaded lens, at wave 1, field 1 ! and a 32x32 grid density (sampling = 1).The coefficients ! will be placed in vector 1.First get the data: GETZERNIKE 37,1,1,1,1,0 ! Now print it out: FORMAT 16.6 PRINT "Peak to Valley : ", vec1(1) PRINT "RMS to chief : ", vec1(3) PRINT "RMS to centroid : ", vec1(4) PRINT "Variance : ", vec1(5) PRINT "Strehl ratio : ", vec1(6) PRINT "RMS Fit Error : ", vec1(7) PRINT "Maximum Fit Error : ", vec1(8) i = 1 label 1 FORMAT 2.0 PRINT "Zernike #", i, " = ", FORMAT 16.6 PRINT vec1(8+i) i = i + 1 if (i < 38) THEN GOTO 1 PRINT "All Done!"
次へ :