byte[] iMat = new byte[imageSize];//灰度图
float[] dMat=new float[imageSize]; //深度图
dit.dit3Ddll.getIMat(iMat);
dit.dit3Ddll.getDMat(dMat);
IntPtr imgPtr = Marshal.AllocHGlobal(iMat.Length);
这里记得要把数据复制一下
Marshal.Copy(iMat, 0, imgPtr, iMat.Length);
HObject HImageDeep = new HObject(); HImageDeep.Dispose();
HOperatorSet.GenImage1(out HImageDeep, "byte", imgW, imgH, imgPtr);
Hwindow.SetPart(0, 0, imgH - 1, imgW - 1);
Hwindow.DispObj(HImageDeep);
HOperatorSet.WriteImage(HImageDeep, "bmp", 0, "C:\\Users\\PTE\\Desktop\\1019SDK\\deepth.bmp");
Marshal.FreeHGlobal(imgPtr);
//这里是转tiff图
unsafe
{
fixed(float* xx = dMat)
{
HObject HImageTiff = new HObject();
HOperatorSet.GenImage1(out HImageTiff, "real", imgW, imgH, new IntPtr(xx));
Hwindow.SetPart(0, 0, imgH - 1, imgW - 1);
Hwindow.DispObj(HImageTiff);
HOperatorSet.WriteImage(HImageTiff, "tiff", 0, "C:\\Users\\PTE\\Desktop\\1019SDK\\0.tiff");
}
}