画像の単純白黒化コードのバグ
画像工学の二値化でやっと濃い部分が無くなる現象がわかった。
char i
で宣言された場合、i = 0xff
とかだと
真っ黒な点になるはずが
threshold = 100; if(i < threshold) { i = 0; } else { i = 0xff; }
if
の条件判定で char
の0xff
、
つまり-127
ってなって
255 > 100
だと思っていたのが-127 < 100
になって
見事なまでに逆転してしまったというのだ。
char型の変数はsignedであることに気をつけよう^^;