0

データベースから類似した画像を見つけるために、画像のハッシュ関数を作成しようとしています。ハッシュは単純に一連のビット(101110010)であり、各ビットは1ピクセルを表します。各画像には約60ピクセルあるので、これをUInt64として保存するのが最善だと思います。

さて、各ピクセルをループして各ビットを計算するとき、それらを連結してUInt64として保存するにはどうすればよいですか?

助けてくれてありがとう。

4

2 に答える 2

4

少しいじる:

long mask = 0;

// For each bit that is set, given its position (0-63):
mask |= 1 << position;
于 2013-01-30T19:09:03.307 に答える
3

次のようなビット演算子を使用します。

ulong it1 = 0;
ubyte b1 = 0x24;
ubyte b2 = 0x36;
...
it1 = (b1 << 48) | (b2 << 40) | (b3 << 32) .. ; 

または、この関数を使用してBitConvert.Uint64()、バイト配列をint64にすばやく変換することもできます。しかし、ターゲットの長さが8バイトであることを確認しますか?

于 2013-01-30T19:08:51.877 に答える