2
我有Int16[19200]
數組我想要把它變成一個Image[160,120,1]
short []數組到EMGU Image,最快的方法是什麼?
什麼是這樣做的最快的方法?
我需要以120fps的速度去做,所以它需要非常高效。
感謝
SW
我有Int16[19200]
數組我想要把它變成一個Image[160,120,1]
short []數組到EMGU Image,最快的方法是什麼?
什麼是這樣做的最快的方法?
我需要以120fps的速度去做,所以它需要非常高效。
感謝
SW
發現:
GCHandle handle = GCHandle.Alloc(dataArray, GCHandleType.Pinned);
IntPtr imageHeaderForBytes = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(MIplImage)));
CvInvoke.cvInitImageHeader(
imageHeaderForBytes,
new Size(160, 120),
Emgu.CV.CvEnum.IPL_DEPTH.IPL_DEPTH_16S, 1, 0, 4);
Marshal.WriteIntPtr(
imageHeaderForBytes,
(int)Marshal.OffsetOf(typeof(MIplImage), "imageData"),
handle.AddrOfPinnedObject());
CvInvoke.cvCopy(imageHeaderForBytes, EMGUImage.Ptr, IntPtr.Zero);
Marshal.FreeHGlobal(imageHeaderForBytes);
handle.Free();