如何在Unity中将IplImage转换为Texture2d

时间:2014-02-24 07:21:04

标签: c# unity3d opencvsharp

我在Unity中使用opencvsharp。

我想将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);

但它不起作用。如何正确转换?

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是将图像保存到本地并使用WWW类将其加载回Texture2d对象。它始终工作正常,并假设它是一台PC,它不会是性能下降。

有一个艰难的方法。如果您仍然需要,我会发布样本。

PS:从WWW本地加载的纹理将像普通函数调用一样执行,因此不需要www。这仅适用于独立。