13.14 SDO_GEOR_UTL.generateGrayRamp

形式

SDO_GEOR_UTL.generateGrayRamp(
     graySeeds      IN SDO_GEOR_GRAYSCALE, 
     rampSteps      IN SDO_NUMBER_ARRAY, 
     cellValueType  IN VARCHAR2 DEFAULT 'integer', 
     interpoParam   IN VARCHAR2 DEFAULT 'method=linear' 
     ) RETURN SDO_GEOR_GRAYSCALE;

説明

シードとして入力された値を内挿して、グレースケール・ランプ(グラデーション)とともにSDO_GEOR_GRAYSCALEオブジェクトを生成します。

パラメータ

graySeeds

内挿の開始値と終了値として使用するシード値を含むSDO_GEOR_GRAYSCALEオブジェクト。少なくとも2つのピクセル値/グレー値のペアを含む必要があります。

rampSteps

各項目がグレー・ランプの各セクションに生成される内挿された値の数を示す配列。グレー・ランプの各セクションに生成される値の数を示す少なくとも1つの整数値を含む必要があります。

cellValueType

整数値または実値としてセル値を作成するかどうかを示す文字列。このパラメータの可能な値は、integer(デフォルト)またはrealです。

interpoParam

内挿メソッドを指定する文字列。可能な値は、method=linear(デフォルト)およびmethod=cosineです。

使用上のノート

このファンクションは、SDO_GEOR_GRAYSCALE型のオブジェクトを戻します(「SDO_GEOR_GRAYSCALEオブジェクト型」を参照)。

グレー・ランプは、各セクションに異なる長さの複数の異なるセクションが含まれる可能性があります。graySeedsで3つの値を指定すると、ファンクションは同じグレー・ランプの2つのセクションを生成します。各セクションのグレー・レベルの数は、rampSteps配列によって制御されます。生成されたグレースケールの合計数は、rampSteps配列の値とgraySeedsの値の数の合計です。個別のセクションを生成するには、graySeedsパラメータの新しい項目およびrampStepsの新しい項目を挿入します。(rampStepsの値0は、内挿された値をそのセクションで生成する必要がないことを示します。)

次の例では、0から255に線形に内挿された102個のグレースケールを含むグレー・ランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)

DECLARE
  gr sdo_georaster;
  gs sdo_geor_grayscale;
BEGIN
  select raster into gr from ramp_test where id = 3 for update;

  gs := sdo_geor_utl.generateGrayRamp( 
           graySeeds  => sdo_geor_grayscale(
             sdo_number_array( 0, 1000),
             sdo_number_array( 0,  255)),
           rampSteps  => sdo_number_array( 100 ),
           cellValueType => 'integer',
           interpoParam  => 'method=linear' );

  sdo_geor.setGrayScale( gr, 0, gs );

  update ramp_test set raster = gr where id = 3;
  commit;
END;

次の例では、-100から0の範囲の100個の内挿された値および0から1000の範囲の100個の内挿された値を持つ203個のグレースケール値のグレーランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)

DECLARE
  gr sdo_georaster;
  gs sdo_geor_grayscale;
BEGIN
  select raster into gr from ramp_test where id = 3 for update;

  gs := sdo_geor_utl.generateGrayRamp( 
           graySeeds  => sdo_geor_grayscale(
             sdo_number_array( -100, 0, 1000),
             sdo_number_array(  255, 0,  255)),
           rampSteps  => sdo_number_array( 100, 100 ),
           cellValueType => 'real',
           interpoParam  => 'method=linear' );

  sdo_geor.setGrayScale( gr, 0, gs );

  update ramp_test set raster = gr where id = 3;
  commit;
END;

次の例では、-100から0の範囲の100個の内挿された値および0から1000の範囲の100個の内挿された値の204個のグレースケール値を持つグレーランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)

DECLARE
  gr sdo_georaster;
  gs sdo_geor_grayscale;
BEGIN
  select raster into gr from ramp_test where id = 3 for update;

  gs := sdo_geor_utl.generateGrayRamp( 
           graySeeds  => sdo_geor_grayscale(
             sdo_number_array( -100,  0, 100, 1000),
             sdo_number_array(    0, 10, 100,  200)),
           rampSteps  => sdo_number_array( 100, 0, 100 ),
           cellValueType => 'real',
           interpoParam  => 'method=linear' );

  sdo_geor.setGrayScale( gr, 0, gs );

  update ramp_test set raster = gr where id = 3;
  commit;
END;

rampSteps配列(rampSteps => sdo_number_array( 100, 0, 100 );)の値0は、内挿された値が2番目のセクションの生成に必要ないことを示します。