0

問題があります。32ビットで得られる負の数の2進数を見つけました。最初の8ビットを除く他のすべてのビットをトリミングします。次にLSBを変更します。答えとして125が得られます。これをグレースケール画像に埋め込む必要があります。私の要件に応じて、この125を平均(4つの隣接するピクセルの合計)で追加する必要があります。これを平均に追加すると、255を超える答えが返されます。したがって、lsbを変更した後に可能性があります。私のビットはネガティブなままです。

これが私のコードです

string str1 = Convert.ToString(d[1, 1], 2);
str1 = str1.Substring(Math.Max(str1.Length - 8, 0)).PadLeft(8, '0');
char[] data = new char[str1.Length]; 

for (int m = 0; m < str1.Length; m++)
{
    data[m] = str1[m];
}

//data[0] = '0';
string s="";
data[0] = '0';

for (int m = 0; m < str1.Length; m++)
{
    s += data[m];
}

byte output = Convert.ToByte(s, 2);
4

1 に答える 1

0

コードは最後の8ビットを除くすべてをトリミングしています。最初の8ビットを除くすべてをトリミングする場合は、str1.Substring(0、8)を使用する必要があります。そして、最後の8ビットのMSBを変更しています。LSBを変更する場合は、data[0]ではなくdata[7]を使用する必要があります。

于 2012-12-12T11:12:24.970 に答える