MATLABでバイナリイメージ処理を行う方法
二値化処理の方法には、Matlabでは様々な種類のものがあり、よく使用されている方法を以下に紹介します。
- 全域閾値法:適当な閾値を設定し、畫素値が閾値より大きい場合は 255 (白)、それ以外の場合は 0 (黒) に変換します。
- しきい値 = 100;
binaryImage = imbinarize(grayImage, しきい値/255); - 適応的閾値化法: 画像を小さな領域に分割し、各領域で局所的な閾値を計算し、画像の中で局所的な閾値よりも大きい画素のグレー値を 255 とし、局所的な閾値よりも小さい画素のグレー値を 0 とする。
- blockSize = 25;
【適応的な二値化】binaryImage = imbinarize(grayImage, ‘adaptive’, ‘ForegroundPolarity’, ‘dark’, ‘Sensitivity’, 0.5, ‘BlockSize’, blockSize); - Otsu阈值法:通过最大类间方差分割图像,选择一个使得类间方差最大的灰度值作为阈值。
示例代码: - 結果 = graythresh(gray画像);
2値化画像 = imbinarize(gray画像, 結果); - 初期設定の閾値から前景と背景の平均グレースケール値から閾値を動的に調整し、閾値が収束するか最大反復回数に達するまで続ける反復閾値法。
- maxIterations = 10
binaryImage = imbinarize(grayImage, ‘adaptive’, ‘ForegroundPolarity’, ‘dark’, ‘Sensitivity’, 0.5, ‘MaxIterations’, maxIterations)
用途によって適切に方法を選択し、二値化画像処理を行えます。