各ピクセルの輝度値 (グレースケール画像) を単純に黒または白に変換する画像二値化アルゴリズムを作成しています。現在、各ピクセルを 2 値化するためのアルゴリズムは、おおよそ次のとおりです。
if( grayscale[x] < thresholdValue)
{
bitonal[x] = 1;
}
(これは実際には ACTUAL アルゴリズムの簡略化です。これは、モノクロ イメージが実際にはビットパックされたイメージであるため (各配列インデックスは 8 ピクセルを保持するため)、現在の配列インデックス内の 1 を実際にビットパックする...しかし、それによって私の質問。
私がやろうとしているのは、if ステートメントの必要性を取り除くことです。
私が考えていたのは、これに沿って何かをすることでした。グレースケールでしきい値値を減算し、ビット操作のトリッキーを実行してビットをクリアまたはシフトします(grayscale[x]-threshold) is less than 0, I get a 0. otherwise I would get a 1
。逆のほうが簡単な場合は、それ(if grayscale[x]-threshold < 0 + bitwise trickery get a 1, else get a 0)
も機能します...分岐ステートメントを取り除くことができる限り...どんな助けも感謝します..