unity3d的Texture2D与opencv的Mat之间的相互转换

1. Texture2D to Mat

    1.1 通过png编码

int w=...
int h=...
...
Texture2D tex=new Texture2D(w,h,TextureFormat.RGB24,false,false);
Mat frame = new Mat(h,w, MatType.CV_8UC3);
...
//the key code
tex.LoadImage (mat.ToBytes(".png"));

   1.2 通过原始像素矩阵(数组)

 

2.Mat to Texture2D

    2.1 通过png编码

int w=...
int h=...
...
Texture2D tex=new Texture2D(w,h,TextureFormat.RGB24,false,false);

...
//the key code
Mat mat=Mat.FromImageData(img.EncodeToPNG());

    2.2 通过原始像素矩阵(数组)

int w=...
int h=...
...
Texture2D tex=new Texture2D(w,h,TextureFormat.RGB24,false,false);

//key code
Mat mat= new Mat(h, w, MatType.CV_8UC3, img.GetRawTextureData());
Cv2.CvtColor(tmp, tmp, ColorConversion.BgrToRgb);
 Cv2.Flip(tmp, tmp, FlipMode.X);

 

文章来自:http://www.cnblogs.com/bluebean/p/5748474.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3