ColorToGreyscaleFilter

カラーの In-Sight センサおよびカラーを有効にしたエミュレータのみに使用な可能な ColorToGreyscaleFilter 関数は、1 つのカラーパラメータからなる単純なフィルタに基づいて、カラーの画像または対象領域 (ROI) 内の各ピクセルを、グレースケール値に変換します。カラーパラメータとは、「純」赤、緑、青 (RGB)、色相、彩度、または明度 (HSI)、明るさ、または RGB 成分の加重平均明度の補間です。

:  GreyscaleDistance 関数と似ていますが、ColorToGreyscaleFilter 関数の操作はより簡単で、各出力ピクセルは選択した変換フィルタの機能であり、ピクセルの 1 つの成分にのみ集中します (例えば、赤の値では、GreyscaleDistance 関数のように 赤、緑、青の値を一緒にはしません)。両方で試してみて、アプリケーションに最適なカラー変換関数を決定する必要があります。

ColorToGreyscaleFilterの入力パラメータ

Syntax:ColorToGreyscaleFilter(画像,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,領域.X,領域.Y,領域.高さ,領域.幅,領域.角度,変換,表示)

画像

この引数は有効なカラー画像データ構造体を含んでいるスプレッドシートのセルを参照している必要があります。デフォルトで参照されるセルは A0 で、このセルに AcquireImage 関数によって返される 画像データ構造体が含まれています。

:  有効なカラー画像データ構造体を返す関数は、AcquireImage 関数だけです。
フィクスチャ

フィクスチャ入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。

デフォルト設定は画像の左上隅で、(0, 0, 0) になります。

画像座標での行オフセットを指定します。
画像座標での列オフセットを指定します。
角度 画像座標での角度を指定します。
領域

これは対象領域 (ROI) とも呼ばれ、画像処理の対象となる画像の領域を指定します。変換および回転可能な矩形の画像領域を作成します。このパラメータを選択して、[領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。

X

フィクスチャ座標での原点の X オフセットを指定します。

Y

フィクスチャ座標での原点の Y オフセットを指定します。

高さ

領域の X 軸に沿った寸法を指定します。

領域の Y 軸に沿った寸法を指定します。

角度

フィクスチャ座標での角度を指定します。

:  フィクスチャおよび領域パラメータは、画像の範囲内で定義されている必要があります。画像の範囲内で定義されていない場合、この関数は #ERR を返します。
変換

変換フィルタのタイプを指定します。

:  
  • 各カラーピクセルは、色成分に分けられます。
  • その他の In-Sight ツールによって使用されるデフォルトの色変換は、ColorToGreyscaleFilter の補間変換フィルタに相当します。
0 = 明るさ (デフォルト) 色の明るさ用の変換フィルタを指定します。その結果は、明るさの出力画像です。入力画像内のピクセルから放射されるライトが多くなるほど、出力画像の外観はより明るくなります。

1 = 赤

 

 

色のの成分用の変換フィルタを指定します。この結果、ピクセルの赤の成分以外はすべて除去されます。入力画像内のピクセルの赤の値が高くなるほど、出力画像の外観はより明るくなります。
2 = 緑 色のの成分用の変換フィルタを指定します。この結果、ピクセルの緑の成分以外はすべて除去されます。入力画像内のピクセルの緑の値が高くなるほど、出力画像の外観はより明るくなります。
3 = 青 色のの成分用の変換フィルタを指定します。この結果、ピクセルの青の成分以外はすべて除去されます。入力画像内のピクセルの青の値が高くなるほど、出力画像の外観はより明るくなります。
4 = 色相 色の色相の成分用の変換フィルタを指定します。この結果、ピクセルの色相の成分以外はすべて除去されます。入力画像内のピクセルの色相の値が高くなるほど、出力画像の外観はより明るくなります (例えば、色相の値が 0 の赤は暗く表示されます)。
5 = 彩度 色の彩度の成分用の変換フィルタを指定します。この結果、ピクセルの彩度の成分以外はすべて除去されます。入力画像内のピクセルの彩度の値が高くなるほど、出力画像の外観はより明るくなります (例えば、彩度の値が 0 の白は暗く表示されます)。
6 = 明度 色の明度の成分用の変換フィルタを指定します。この結果、ピクセルの明度以外はすべて除去され、ピクセルの RGB 成分の平均明度が分かります。入力画像内のピクセルの明度の値が高くなるほど、出力画像の外観はより明るくなります (例えば、明度の値が 255 の白は明るく表示されます)。
7 = 補間 色の補間用の変換フィルタを指定します。明度フィルタと同様に、この結果、ピクセルの明度の成分以外はすべて除去されます。入力画像内のピクセルの明度の値が高くなるほど、出力画像の外観はより明るくなります (例えば、明度の値が 255 の白は明るく表示されます)。ただし、補間フィルタは RGB 成分の加重平均明度を決定するので、非標準の変換フィルタです。
表示

画像の上に表示されるグラフィックスオーバレイを指定します。

0 = 非表示 (デフォルト) ColorToGrayscaleFilter 関数を含んでいるセルがスプレッドシート上でハイライトされている場合を除き、入力画像領域は表示されません。
1 = 結果のグラフィックスのみ 処理された画像が常に表示されます。
2 = 入力のグラフィックスのみ 入力画像領域が常に表示されます。

ColorToGreyscaleFilterの出力

戻り値 処理済みの画像を含んでいる画像データ構造体。入力パラメータが無効であれば #ERR を返します。

ColorToGreyscaleFilter 関数の例

この例では、入力画像内の対象物は黄色の Cognex センサであり、GreyscaleDistance 関数の例でも使用されています。画像のランダムサンプリング ([表示] メニューで [オーバレイ] を選択し、センサ上でカーソルを動かしてウィンドウの左下隅にあるステータスバーに RGB 情報を表示することで、オーバーレイビューをオフに切り替えて実行します) は、このセンサについて 205-185-124、193-177-110、175-154-39、133-104-2、および 115-91-6 の RGB 値を表示します。

In-Sight スプレッドシートに関数を挿入した後、プロパティシートで「領域」という単語をダブルクリックして ROI を定義します。画像の上に赤い ROI ボックスが現れます。カーソルを使用してボックスを移動するかサイズを変更してから、In-Sight ツールバーにある緑の「チェックマーク」アイコンをクリックし (または、キーボードの Enter キーを押し)、選択を確定してプロパティシートに戻ります。

変換フィルタを選択し、そのほかのパラメータについてはデフォルト設定を受け入れ、プロパティシートで [OK] をクリックしてこの例の設定を完了し、関数を入力画像に適用します。

赤、緑、青のフィルタが適用された 3 つの出力画像を、それぞれ下記に示します。予測されるように、センサの黄色は赤のフィルタが適用された画像で最も明るくなっています。これは、黄色のセンサでは赤が最も強い色成分だからです (画像の赤の最大の値は 210、平均は 116、中央値は 127 です)。入力ピクセルの値がフィルタの値に近いほど、出力ピクセルは明るくなります。

センサの黄色は、緑のフィルタが適用された画像ではわずかに暗くなります。これは、赤と比較して、含まれている緑が少ないからです (最大は 199、平均は 112、中央値は 125)。

センサの黄色は、青のフィルタが適用された画像で最も暗くなります。これは、赤と比較して、含まれている青が少ないからです (最大は 197、平均は 101、中央値は 121)。