void DetectLabEdges(
            double[] lvec,
            double[] avec,
            double[] bvec,
            int width,
            int height,
            double[] edges) {
        
        for (int j=1; j<height-1; j++) {
            for (int k=1; k<width-1; k++) {
                int i = j*width + k;

                double dx = (lvec[i - 1] - lvec[i + 1]) * (lvec[i - 1] - lvec[i + 1])
                          + (avec[i - 1] - avec[i + 1]) * (avec[i - 1] - avec[i + 1])
                          + (bvec[i - 1] - bvec[i + 1]) * (bvec[i - 1] - bvec[i + 1]);

                double dy = (lvec[i - width] - lvec[i + width]) * (lvec[i - width] - lvec[i + width])
                          + (avec[i - width] - avec[i + width]) * (avec[i - width] - avec[i + width])
                          + (bvec[i - width] - bvec[i + width]) * (bvec[i - width] - bvec[i + width]);

                 edges[i] = (dx*dx + dy*dy);
            }
        }
    }