Example #1
0
    public static Matrix ConvertToMultiChannelMatrix(Vector3[] points3d)
    {
        Matrix mat = new Matrix(1, points3d.Length, MatrixType.cv32FC3);

        for (int i = 0; i < points3d.Length; i++)
        {
            mat[0, i, true] = new cvScalar(points3d[i].x, points3d[i].y, points3d[i].z);
        }
        return(mat);
    }
Example #2
0
    //byte Median(int i, int j, int k) {
    //	return (byte)Mathf.Min(Mathf.Max(i, j), Mathf.Max(j, k), Mathf.Max(i, k));
    //}

    IEnumerator BlurImage()
    {
        Color32[] pixels = m_pixels[0];
        Matrix    src    = new Matrix(imageHeight, imageWidth, MatrixType.cv32FC3);
        Matrix    dest   = new Matrix(imageHeight, imageWidth, MatrixType.cv32FC3);

        for (int row = 0, i = 0; row < imageHeight; ++row)
        {
            for (int col = 0; col < imageWidth; ++col, ++i)
            {
                Color32 c = pixels[i];
                src[row, col, true] = new cvScalar(c.b, c.g, c.r);
            }
            yield return(null);
        }

        for (int i = 0; i < 2; ++i)
        {
            OpenCV.cvSmooth(src.matPtr, dest.matPtr, OpenCV.CV_BILATERAL, 5, 5, 250.0, 250.0);
            yield return(null);

            OpenCV.cvSmooth(dest.matPtr, src.matPtr, OpenCV.CV_BILATERAL, 5, 5, 250.0, 250.0);
            yield return(null);
        }

        for (int row = 0, i = 0; row < imageHeight; ++row)
        {
            for (int col = 0; col < imageWidth; ++col, ++i)
            {
                cvScalar c = src[row, col, true];
                pixels[i].r = (byte)c.d2;
                pixels[i].g = (byte)c.d1;
                pixels[i].b = (byte)c.d0;
            }
            yield return(null);
        }
    }
Example #3
0
 public static extern void cvSet2D(IntPtr mat, int y, int x, cvScalar scalar);