ヒストグラムの例

下図は、明るいグレーの背景にある10個の暗いリングです。このパーツをCorrelationオブジェクト、Blobオブジェクトで検出したときを例に挙げてヒストグラムについて説明します。

Corr01オブジェクトを使った10個のリングの画像イメージ例

Correlationオブジェクトで使うヒストグラム

下図は、Corr01オブジェクトの生成された[ヒストグラム]ダイアログを示します。これは多様な照度レベル上に、画像イメージの散らばり方がわかるように、ピクセルがうまく広がっているのを示していることに注目してください。暗いピクセルより明るいピクセルの方が多い(「ヒストグラムの例」の画像イメージのほとんどがグレーの背景で暗いリングではない)ことが、わかります。

Correlationオブジェクト“Corr01”のヒストグラム例

Blobオブジェクトで使うヒストグラム

[ヒストグラム]ダイアログをBlobオブジェクトで使う場合は、Correlationオブジェクトで使う場合とは異なることがいくつかあります。ThresholdLow, ThresholdHighという値を底部に持つ2本の垂直なバーがあることに注目してください。これらは、検出したブローブの部分として含む照度レベルと、背景の部分として含む照度レベルを指定するのに使われるBlobオブジェクトのプロパティーです。

Blobオブジェクト”Blob01”のヒストグラム例 (明るい背景上の暗い画像イメージ)

ThresholdLowスライドバーとThresholdHighスライドバーの間の領域は、ThresholdColorプロパティーで設定した、色(黒色または白色)として定義する照度レベルを持つピクセルの集まりです。Polarityプロパティーは、白い背景上の黒色のオブジェクトを探すのか、または暗い背景上の白色のオブジェクトを探すのかを定義します。
ThresholdLowプロパティーとThresholdHighプロパティーの調整
もう一度、上図を見てください。ThresholdLowプロパティーが0に、ThresholdHighプロパティーが128に設定されていることに注目してください。これらはBlobオブジェクトのプロパティーのデフォルト値です。リングの画像イメージでBlobオブジェクトを最初に実行するとき(NumberToFindの設定を10にして)、下図で示すリザルトを得ます。検出された多くのブローブの極値は、リングの外側パーツには行き渡らず、パーツの一部のみがブローブとして検出されたり、1つのパーツが2つのブローブとして検出される場合もあります(問題部分を示す下図の矢印を見てください)。これは、ヒストグラムのリザルトに基づいてThresholdLowプロパティーとThresholdHighプロパティーを調整していないからです。


適切なThreshold設定が行われていない10個のリングの画像イメージ

ヒストグラムダイアログを使ってリングの画像イメージのヒストグラムを確認する場合、レベル32あたりから始まるグレーの大きな分布が見えます。もう1つの大きなピークは170あたりから始まっています。リングの画像イメージでグレーの最大分布は明るい背景ですので、170を超えるピクセルの分布は背景のものだと簡単にわかります。また、ヒストグラム中の他のピークは約32から170までですから、これはリング(検出したいパーツ)の画像イメージの暗い部分の分布です。ThresholdLow値とThresholdHigh値は、各ブローブの検出ボックスがちょうどリングの外側境界線にくるように、調整することができます。ヒストグラムダイアログのThresholdHighバーとThresholdLowバーをクリックして、下図に示す位置に動かせば、調整できます。


Threshold設定を行ったリングの画像イメージのヒストグラム

新しいThresholdLow設定とThresholdHigh設定でBlobオブジェクトを実行したあとで、リングの画像イメージを見ると、返されたリザルトがより望むものに一致しているのがわかります。各リングは、各ブローブの極値をきちんと示しています。


適切にThredshold設定を行った10個のリングの画像イメージ

また、ThresholdAutoチェックボックスがダイアログ右下にあります。このチェックボックスにチェックを入れることで、サーチウィンドウ内の画像から、適切と考えられるThresholdLowプロパティー値とThresholdHighプロパティー値を設定します。上図画像の場合、ThresholdLowプロパティー値は0に、ThresholdHighプロパティー値は164に設定されます。このThresholdAutoチェックボックスの状態は、ThresholdAutoプロパティー値と連動します。ThresholdAutoプロパティー値をTrueに設定した場合、画像処理実行時に閾値の計算が毎回行われます。これにより、照明環境が変化した場合でも、ブローブ検出が正しく機能し続けることが可能となります。

キーポイント


入力画像に処理するワークが映らない場合など、画面が均質(真っ黒や真っ白)となった場合においても、ThresholdAutoをTrueに設定している場合は、ブローブ検出が可能な閾値まで設定値が下がります。(常に1つ以上のブローブが検出されるようになります)