2014-02-24 76 views
-1

我在Unity中使用opencvsharp。如何將IplImage轉換爲Unity中的Texture2d

我想將iplImage轉換爲Texture2D。我想這樣做:

Texture2D alphaTexture = new Texture2D(1024, 768, TextureFormat.Alpha8, false); 
alphaTexture.wrapMode = TextureWrapMode.Clamp; 
alphaTexture.filterMode = FilterMode.Point; 

IplImage originIplImageAAA = Cv.CreateImage(new CvSize(1024, 768), BitDepth.U8, 1); 
Cv.Zero(originIplImageAAA); 

int imgSize = originIplImageAAA.ImageSize; 
IntPtr aa; 
int step; 
CvSize rawSize; 

originIplImageAAA.GetRawData(out aa, out step, out rawSize); 

byte[] imageData = new byte[imgSize]; 

Marshal.Copy(aa, imageData, 0, imgSize); 
alphaTexture.LoadImage(imageData); 

但它不起作用。我如何正確轉換它?

回答

0

最簡單的解決方案是將圖像保存到本地並使用WWW類將其加載回Texture2d對象。它始終工作得很好,並且假設它是一臺PC,它不會成爲性能下降。

有一個很難的方法。如果您仍然需要,我會發布樣本。

PS:從WWW本地加載的紋理將像普通函數調用一樣執行,因此即使不需要www。這僅適用於獨立版本。

+0

我試過你說的和我發現它有點慢。你能告訴我這個艱難的解決方案嗎? – xushunwang