2017-12-18 2 views

答えて

2
v = numpy.array([1,0,1,0,1,0,1,0]) 
g = numpy.sum(2**numpy.arange(8)*v) 

各ビットについて、2^0,2^1などを取ることによって重みを決定します。次に、重みベクトルとビットベクトルの積を取って値を合計します。

これは最下位の一つであることが最初のビットを想定して、範囲を反転させることによって、それは他の方法で回避することができます

g = numpy.sum(2**numpy.arange(7,-1,-1)*v) 

これらの両方は、あなたの0〜255の範囲でグレースケール値を与えます。これを1ビットにしたい場合は、しきい値を設定することができます:

g = 1 if (numpy.sum(2**numpy.arange(7,-1,-1)*v) > 127) else 0 
+0

私はベクトル[0. 0. 0. 1. 0. 0. 0. 0.]を持っており、しきい値> 127を設定するとfalseを示します。出力を理解できないので、これはどういう意味ですか。 –

+0

真== 1、偽== 0、私は実際に0と1を表示するように更新しました – Lanting

+0

この場合、すべてのビットが0と1であるため、> 127になることはありません。 。グレースケールのピクセルを作成できないということですか? –

関連する問題