2
나는 Int16[19200]
의 배열은 내가 Image[160,120,1]
EMGU 이미지에 짧은 [] 배열, 가장 빠른 방법은?
이 일의 가장 빠른 방법은 무엇으로 바꿀하려는 있나요?
120fps로 처리해야하므로 효율적이어야합니다.
감사
SW
나는 Int16[19200]
의 배열은 내가 Image[160,120,1]
EMGU 이미지에 짧은 [] 배열, 가장 빠른 방법은?
이 일의 가장 빠른 방법은 무엇으로 바꿀하려는 있나요?
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();