Exemplo n.º 1
0
        public static Int2[] FindBeads(FloatImg img, Int2 sampleCornerPos, int roi, float imgRelDist, float acceptance)
        {
// public static extern IntPtr QTrkFindBeads(float* image, int w, int h, int smpCornerPosX, int smpCornerPosY, int roi, float imgRelDist, float acceptance);
            int       beadCount;
            ImageData sampleImg   = new ImageData();
            ImageData imgData     = img.ImageData;
            IntPtr    beadListPtr = QTrkDLL.QTrkFindBeads(ref imgData, sampleCornerPos.x, sampleCornerPos.y, roi, imgRelDist, acceptance, out beadCount, ref sampleImg);
            Int2 *    beadpos     = (Int2 *)beadListPtr.ToPointer();

            Int2[] r = new Int2[beadCount];
            for (int i = 0; i < beadCount; i++)
            {
                r[i] = beadpos[i];
            }

            QTrkDLL.QTrkFreeROIPositions(beadListPtr);
            return(r);
        }