11.1 SDO_GEOR_IP.dodge

形式

SDO_GEOR_IP.dodge(
     inGeoRaster        IN SDO_GEORASTER, 
     gridsize           IN SDO_NUMBER_ARRAY, 
     samplingFactor     IN VARCHAR2 DEFAULT NULL, 
     means              IN SDO_NUMBER_ARRAY DEFAULT NULL,
     standardDeviations IN SDO_NUMBER_ARRAY DEFAULT NULL,
     storageParam       IN VARCHAR2 DEFAULT NULL, 
     outGeoraster       IN OUT SDO_GEORASTER,
     parallelParam      IN VARCHAR2 DEFAULT NULL);  

または

SDO_GEOR_IP.dodge(
     inGeoRaster        IN SDO_GEORASTER, 
     gridsize           IN SDO_NUMBER_ARRAY, 
     samplingFactor     IN VARCHAR2 DEFAULT NULL, 
     refGeoraster       IN SDO_GEORASTER,
     standardDeviations IN SDO_NUMBER_ARRAY DEFAULT NULL,
     storageParam       IN VARCHAR2 DEFAULT NULL, 
     outGeoraster       IN OUT SDO_GEORASTER,
     parallelParam      IN VARCHAR2 DEFAULT NULL);  

説明

入力GeoRasterオブジェクトに覆い焼きアルゴリズムを適用して、イメージをカラー・バランス処理します。

パラメータ

inGeoRaster

処理するSDO_GEORASTERオブジェクトを指定します。

gridSize

xおよびy方向の各グリッドのサイズ。1つまたは2つの数値の配列です。1つの数値のみを指定する場合、xおよびy方向の両方に使用されます。

samplingFactor

統計の計算を制御するために使用するサンプリング係数として、1/(n*n)の分母n'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。指定しない場合(NULL)、デフォルト値は1です。

samplingFactorは、gridSizeの半分(0.5)以上を指定できません。

means

各出力バンドのターゲットの平均値。1つの値のみを指定する場合、すべての出力バンドに適用されます。それ以外の場合、出力GeoRasterオブジェクトのバンド数と同じ値を含める必要があります。NULLの場合、すべてのグリッドの平均値として計算されます。

standardDeviations

各出力バンドのターゲットの標準偏差値。1つの値のみを指定する場合、すべての出力バンドに適用されます。それ以外の場合、出力GeoRasterオブジェクトのバンド数と同じ値を含める必要があります。NULLの場合、すべてのグリッドの平均の標準偏差として計算されます。

refGeoraster

参照GeoRasterオブジェクト。覆い焼き結果の出力は、参照GeoRasterオブジェクトの統計に適応します。

storageParam

記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。

outGeoRaster

操作の結果を反映させる出力SDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。inGeoRasterと同じGeoRasterオブジェクトは指定できません。

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

並列性を指定すると、プロシージャはプロセスの実行中に内部コミットを実行します。したがって、このプロシージャの結果をロールバックできません。エラーが発生した場合(Oracle Parallel Serverが原因である場合でも)、操作をロールバックするために、出力結果のGeoRasterオブジェクトを明示的に削除する必要があります。

使用上のノート

この覆い焼き操作は、適応性のあるイメージ拡張方法を使用して、イメージの色調のバランスを取ります。つまり、暗い領域を明るくし、明るい領域を暗くします。gridsizeパラメータで定義されているグリッドの統計がオンザフライで収集され、ターゲットの平均値および標準偏差値に調整されます。不均衡を排除するため、グリッド・サイズを不均衡の領域より小さくする必要があります。最適な結果を実現するためにgridSizeパラメータを調整します。

入力GeoRasterイメージに8BIT_UcellDepth値を含める必要があります。記憶域パラメータのcelldepth値は無視されます。outGeoRasterオブジェクトのセル深度は、常に8BIT_Uです。

入力GeoRasterオブジェクトのカラー・マップはサポートされていません。

出力GeoRasterオブジェクトにはピラミッドまたはマスクが含まれません。

次の例では、入力GeoRasterオブジェクトの覆い焼きの結果のGeoRasterオブジェクトを作成します。必要な平均および標準偏差は、それぞれ125および80として設定されます。グリッド・サイズは、xおよびy方向で512です。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
BEGIN
  INSERT INTO georaster_table (georid, georaster)
    VALUES (41, sdo_geor.init('RDT_1'))
    RETURNING georaster INTO gr2;

  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4;

  sdo_geor_ip.dodge(gr1, sdo_number_array(512, 512), ‘samplingFactor=3’, sdo_number_array(125), sdo_number_array(80), null, gr2);
  UPDATE georaster_table SET georaster=gr2 WHERE georid=41;
  COMMIT;
END;
/

次の例では、参照GeoRasterオブジェクトに基づいて、入力GeoRasterオブジェクトの覆い焼きの結果のGeoRasterオブジェクトを作成します。パラレル処理が並列度4で有効化されます。グリッド・サイズは、xおよびy方向で512です。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
gr1 sdo_georaster;
gr2 sdo_georaster;
refgr sdo_georaster;
BEGIN
  INSERT INTO georaster_table (georid, georaster) VALUES (41, sdo_geor.init('RDT_1'))
     RETURNING georaster INTO gr2;
  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4;
  SELECT georaster INTO refgr FROM georaster_table WHERE georid=1;
  sdo_geor_ip.dodge(gr1, sdo_number_array(512, 512), ‘samplingFactor=3’, refgr, null,
                    gr2, 'parallel=4');
  UPDATE georaster_table SET georaster=gr2 WHERE georid=41;
COMMIT;
END;
/