私の目標は、256x256ピクセルサイズのビットマップを読み込み、実際の値が特定のしきい値を下回るかどうかによって、各ピクセルに白または黒の色値を割り当てます。BitmapDataを操作すると、1/3のみが変更されます
問題は、内側のfor文が全体の幅にわたって反復するにもかかわらず、ビットマップが新しいピクセルデータを持つ幅のわずか1/3です。
unsafe
{
BitmapData bitmapData = bitmap.LockBits(new Rectangle(0,0, 256, 256), ImageLockMode.ReadWrite, bitmap.PixelFormat);
for (int j = 0; j < bitmapData.Height; j++)
{
byte* row = (byte*)bitmapData.Scan0 + (j * bitmapData.Stride);
for (int k = 0; k < bitmapData.Width; k++)
{
if (row[k] <= TresholdFilter)
row[k] = 0;
if (row[k] > 0)
row[k] = 255;
}
}
bitmap.UnlockBits(bitmapData);
}
'TresholdFilter'の値は何ですか? – erikscandola
Int32で、範囲は0-255 – Yama
です。場合によっては、 'row [k]'の初期値のままである可能性がありますか?別の画像で試しましたか? – erikscandola