1

多分誰かが私を助けることができます。GetPixels32() を呼び出して、Color32[] 配列が必要です。これは、ウェブカメラ付きの QR コード リーダーに適したソリューションです。 Unity3D を使用して QR コードをデコードする方法

残念ながら、Vuforia はバイト配列しか提供できません...

Image.PIXEL_FORMAT mPixelFormat = Image.PIXEL_FORMAT.RGB565;
Image cameraImage = CameraDevice.Instance.GetCameraImage(mPixelFormat);
byte[] pixels = cameraImage.Pixels;

Pixel バイト配列を Color32 配列にする方法を知っている人はいますか? これがVuforiaフォーラムでの私の質問です。

おそらく、Android および iOS 用の Unity で QR コードをデコードするための他のソリューションを誰かが持っているでしょう。私はあなたの助けにとても感謝しています.

編集:これはunityAnswersの同じ質問です。

4

1 に答える 1

2

16 ビット R5G6B5 形式の画像データを要求しているように見えるので、データ形式は 5-6-5 ビット形式のバイトのペアだと思います。したがって、2 バイトを通常の Color 構造体に変換すると、次のようになります。

color.r = (byte[0] & 0x1f) / (float)(0x1f);
color.g = ((byte[1] & 0x07) | ((byte[0] & 0xe0) >> 5)) / (float)(0x3f);
color.b = ((byte[1] & 0xf8) >> 3) / (float)(0x1f);

次に、キャストするだけで Color を Color32 に変換できます。

つまり、画像データを 16 ビット形式ではなく 24 ビット形式で要求できる場合は、バイト値を直接 Color32 のチャネルにフィードできます。

于 2012-06-10T21:57:06.110 に答える