ボイドOstu()
{
// 初期化
U = 0 ;
AvgValue = 0 ;
W0 = 0 ;
maxVariance = 0 ;
// 空の配列階調
用(I = 0 ; I < 256 ; I ++が)
{
ヒストグラム[I] = 0 ;
}
// 階調ヒストグラム作成
uint8_tイメージの*&p_image = [ 0 ] [ 1 ];
のための(I = 0;私は< 70 ++; I)// 0-255ような図形の代表階調アレイは灰色の数を表すように、グレースケールが、各階調の数を考え出した
{
ため(INTを = J 0、J < 186 ; ++ J)
{ // 44から374
++ヒストグラム[* p_image];
p_image ++ ;
}
p_image + = 2 ;
}
ための(I = 0 ; I < 256 ; ++ Iは)
{
ヒストグラム[I] = [I]ヒストグラム/サイズ; //階調数/サイズ比=
U + = I * ヒストグラム[I]; //現在のグレー値*比で総累積平均グレー
}
ための(I = 0 ;私は< 256 ; ++ I)
{
W0 + [I] =ヒストグラム; // 前景画素はi番目のフロント前景の割合がいるものとする
AvgValue + = i *が見通し//総灰色; [I]ヒストグラム
T - = AvgValue / W0 //; U灰色の見通し平均-総グレーU = U0 Tの
分散 = W0 * T * T /(1 - W0); // G = W0 / *(U1-U0)^ 2(1-W0)
IF(分散> maxVariance)
{// 最大階調値との差を見つける
maxVariance = 分散;
Ostu_Threshold = I; // 値が閾値である
}
}
// 値化加速度アレイ値化生成する
ための(I = 0 ; IはOstu_Thresholdを<; Iは++ )
{
Bin_Array [I] = 0 ;
}
ための(I = Ostu_Threshold;私は< 256 ; Iは++ )
{
Bin_Array [I] = 1 ;
}
}