GreyscaleDistance
カラーの In-Sight センサおよびカラーを有効にしたエミュレータのみに使用可能な GreyscaleDistance 関数は、次のさまざまなユーザ設定のカラーパラメータに基づいて、カラーの画像または対象領域 (ROI) 内の各ピクセルを、グレースケール値、つまり白黒に変換します。カラー表現 (赤、緑、および青、または色相、彩度、明度) および RGB または HSI カラーとしきい値に関するユーザ入力値です。グレースケール画像は、各ピクセルのカラーのユークリッド距離から得られます。
GreyscaleDistanceの入力パラメータ
Syntax:GreyscaleDistance(画像 ,フィクスチャ.行 ,フィクスチャ.列 ,フィクスチャ.角度 ,領域.X ,領域.Y ,領域.高さ ,領域.幅 ,領域.角度 ,カラー表現 ,カラー.赤/色相 ,カラー.緑/彩度 ,カラー.青/明度 ,しきい値.赤/色相 ,しきい値.緑/彩度 ,しきい値.青/明度 ,表示)
画像 |
この引数は有効なカラー画像データ構造体を含んでいるスプレッドシートのセルを参照している必要があります。デフォルトで参照されるセルは A0 で、このセルに AcquireImage 関数によって返される 画像データ構造体が含まれています。 注 : : 有効なカラー 画像データ構造体を返す関数は、AcquireImage 関数だけです。
|
||||||||||||||||||
フィクスチャ |
フィクスチャ入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。 デフォルト設定は画像の左上隅で、(0, 0, 0) になります。
|
||||||||||||||||||
領域 |
これは対象領域 (ROI) とも呼ばれ、画像処理の対象となる画像の領域を指定します。変換および回転可能な矩形の画像領域を作成します。このパラメータを選択して、[領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。
|
||||||||||||||||||
カラー表現 |
カラー変換に使用するカラー表現を指定します。
|
||||||||||||||||||
カラー |
選択されたカラー表現に応じて、カラー変換に使用するカラーを指定します。3 つすべてのカラー値としきい値は、出力画像のピクセルの外観に反映されます。例えば、3 つのしきい値がすべて -1 に設定されている RGB 255-0-0 は、出力画像ですべての「純」赤のピクセルを白として表示し、その他の色はすべて、255-0-0 からのユークリッド距離に応じて暗いグレースケール値として表示します (例えば、白は暗く表されます)。
|
||||||||||||||||||
しきい値 |
選択されたカラー表現に応じて、各カラー座標の白黒 (「バイナリ」) のしきい値を指定します。 注 : 3 つのしきい値のデフォルトはすべて -1 であり、ユークリッド距離に基づいてグレースケールの出力画像を生成します。
[Threshold] パラメータが -1 よりも大きい整数に設定された場合は、指定されているしきい値に基づいて、出力は白黒の画像になります。 [Threshold] パラメータは「±」の値を表します。このしきい値は、上記の [カラー] セクションで指定されているカラー値との間で減算と加算が行われ、RGB または HSI 成分のしきい値の最小値と最大値を作成します。例えば、RGB または HSI の値を 200-100-50 に設定し、しきい値を 20-10-5 と設定した場合、しきい値の最大値と最小値はそれぞれ 220-110-55 および 180-90-45 となります。RGB または HSI の値がしきい値以内のピクセルは、白で表示されます。しきい値の範囲外のピクセルは、黒で表示されます。
|
||||||||||||||||||
表示 |
画像の上に表示されるグラフィックスオーバレイを指定します。
|
GreyscaleDistanceの出力
戻り値 | 処理済みの画像を含んでいる画像データ構造体。入力パラメータが無効であれば #ERR を返します。 |
結果 | GreyscaleDistance 関数が初めてセルに挿入されると、スプレッドシート内に結果テーブルが自動的に作成されます。 |
GreyscaleDistanceデータアクセス関数
次のデータアクセス関数がスプレッドシートに自動挿入され、結果テーブルが作成されます。
暗ピクセル | GetDarkPixelCount(画像) | バイナリしきい値レベルを下回るピクセルの数 |
明ピクセル | GetBrightPixelCount(画像) | バイナリしきい値レベル以上のピクセルの数 |
GreyscaleDistance 関数の例
この例では、入力画像内の対象物は黄色の Cognex センサであり、ColorToGreyscaleFilter 関数の例でも使用されています。画像のランダムサンプリング ([表示] メニューで [オーバレイ] をクリックし、センサ上でカーソルを動かしてウィンドウの左下隅にあるステータスバーに RGB 情報を表示することで、オーバレイビューをオフに切り替えて実行します) は、このセンサについて 205-185-124、193-177-110、175-154-39、133-104-2、および 115-91-6 の RGB 値を表示します。
この例では、GreyscaleDistance 関数のシンプルな設定を使用して、グレースケール出力画像を生成します。
In-Sight スプレッドシートに関数を挿入した後、プロパティシートで「領域」という単語をダブルクリックして ROI を定義します。画像の上に赤い ROI ボックスが現れます。カーソルを使用してボックスを移動するかサイズを変更し、[ジョブの編集] ツールバーにある [OK] ボタンをクリックし、選択を確定してプロパティシートに戻ります。Enter キーを押すか、ROI 内をダブルクリックすることで、選択を確定することもできます。
RGB カラー表現を選択し、プロパティシートの [カラー] セクションにある [RGB] フィールドに「205-185-124」と入力して、そのほかのパラメータについてはデフォルト設定を受け入れ、プロパティシートで [OK] をクリックしてこの例の設定を完了し、関数を入力画像に適用します。
下記は、GreyscaleDistance 関数によって生成された出力画像です。RGB の値 205-185-124 は、センサの一部の領域と完全一致であるため、センサは非常に明るいピクセルで表されています。
ColorToGreyscaleFilter 関数の赤のフィルタを使用して生成された下記の画像と、上記の画像を比較します。下記の画像ではセンサが明るくなっていますが、上記の画像では強められているコントラストがありません。