関数 > 画像処理 > 画像の操作 > 例: 2 値化と量子化
  
例: 2 値化と量子化
binarize関数を使用して、2 つのグレーレベルの画像を作成します。 quantize関数を使用して、n 個のグレーレベルの画像を作成します。
この関数は、画像の各要素が、指定されているしきい値以下の場合には 0 を返し、要素がしきい値より大きい場合には 1 を返します。
2 値化または量子化で適切なしきい値またはレベル数を選択することで、画像の特徴を際立たせることができます。これらの処理は画像分析の第一段階で行われることもあります。
この例の使用方法については、 画像処理の例についてを参照してください。
binarize
1. READ_IMAGE関数を使用して画像を読み込みます。
クリックしてこの式をコピー
(bridge.bmp)
2. しきい値を設定します。
クリックしてこの式をコピー
3. binarize 関数を使用して 2 値画像を生成します。
クリックしてこの式をコピー
4. WRITEBMP関数を使用して 2 値画像をファイルに書き込みます。
クリックしてこの式をコピー
(bridge_bin.bmp)
thresh の値を変更して、画像に対する影響を確認できます。
2 値化のしきい値の自動設定
2 値化のしきい値は自動的に設定することもできます。これはマシンビジョンアプリケーションにおける対象物検出に利用できます。
しきい値が指定されていない場合、binarize 関数はしきい値を自動計算します。
1. 産業部品のグレースケールデジタル画像を読み取ります。
クリックしてこの式をコピー
2. 画像を 2 値化します。
クリックしてこの式をコピー
3. 2 値画像をファイルに書き込みます。
クリックしてこの式をコピー
(part.gif)
(part_bin.bmp)
オプションの引数の使用
輝度が特定の範囲内にあるピクセルを強調したり目立たなくするには、オプションの引数 lowThreshhighThreshinValueoutValue を使用します。2 値化によって、輝度が lowThresh から highThresh の範囲内にあるすべてのピクセルの値が inValue に設定され、その他のピクセルの値は outValue に設定されます。入力パラメータの値には任意の値を指定でき、必ずしも 0 から 255 の間である必要はありません。inValueoutValue には同じ値を設定できます。その場合、画像全体が 1 つのレベルだけに設定されます。
1. 50 から 150 の範囲内のピクセルの値を 25 に設定し、その他のピクセルの値を 200 に設定します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. オプションの引数を使用して、bridgegray 画像行列を 2 値化します。
クリックしてこの式をコピー
3. 2 値画像をファイルに書き込みます。
クリックしてこの式をコピー
(bridge_bin2.bmp)
quantize
1. 上で使用したグレースケール画像に quantize 関数を適用します。
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 量子化された画像をファイルに書き込みます。
クリックしてこの式をコピー
(bridge_q3.bmp)
3. ベクトルでレベルを指定し、同じ画像を量子化します。この 3 つのレベルを使用して量子化された画像を前の画像と比較します。
クリックしてこの式をコピー
v の値は厳密に昇順でなければなりませんが、実数であれば値は何でも構いません。指定した画像の範囲内に量子化レベルを等間隔に設定しない場合、この引数を指定します。
クリックしてこの式をコピー
クリックしてこの式をコピー
(bridge_q3v.bmp)