■やりたいこと
透明なMatを作成し、RawImageに表示したい。
■困っていること
グレーのMatが作成される。
■コード
c#
1Texture2D sourceTex = new Texture2D(webCamTexWidth, webCamTexHeight, TextureFormat.RGBA32, false); 2source = Unity.TextureToMat(sourceTex); 3Mat transparent = source.CvtColor(ColorConversionCodes.BGR2BGRA); 4unsafe 5{ 6 byte* b_transparent = transparent.DataPointer; 7 float pixelCount = transparent.Height * transparent.Width; 8 for(int i=0; i<pixelCount; i++) 9 { 10 b_transparent[0] = 0; 11 b_transparent[1] = 0; 12 b_transparent[2] = 0; 13 b_transparent[3] = 0; 14 b_transparent = b_transparent + 4; 15 } 16}
■構成
コードの"transparent"をRawImageに紐づけています。
解決策が分かる方、ご教示お願いします。
グレーになっているということは、どのように確認しましたか?
transparentをRawImageに出力して確認しました。
記載してませんでしたね。すみません。。。
他の画像と合成してみて本当に透過されてないか確認してみましたか?
>他の画像と合成してみて本当に透過されてないか確認してみましたか?
⇒しました。transparentを表示するRawImageの後ろに別のRawImageを重ねているのですが、グレー一色で後ろのRawImageは見えません。
Unityのことはよく知らないのですが、質問の題名が悪くて、smpik さんが質問するべきなのは「UnityのRawImageを透過させるにはどうすればいいか」であって、OpenCVSharp はあまり関係がないので回答がつかないのではないかと思います。
@yuki23さん
おっしゃる通りかもしれませんね。質問のタイトル、内容を再検討してみます!
(RawImageを透過させる方法は知ってます!inspectorからRawImageの透明度を変えてやってます!)
あなたの回答
tips
プレビュー