/// <summary>
        /// Raises the set face mask button event.
        /// </summary>
        public void OnChangeFaceMaskButton()
        {
            removeFaceMask();

            SampleMaskData maskData = SampleDataSet.GetData();

            faceMaskTexture = Resources.Load(maskData.FileName) as Texture2D;
            faceMaskMat     = new Mat(faceMaskTexture.height, faceMaskTexture.width, CvType.CV_8UC3);
            OpenCVForUnity.Utils.texture2DToMat(faceMaskTexture, faceMaskMat);
            Debug.Log("faceMaskMat ToString " + faceMaskMat.ToString());

            if (maskData.LandmarkPoints != null)
            {
                faceRectInMask           = maskData.FaceRect;
                faceLandmarkPointsInMask = maskData.LandmarkPoints;
            }
            else
            {
                faceRectInMask           = detectFace(faceMaskMat);
                faceLandmarkPointsInMask = detectFaceLandmarkPoints(faceMaskMat, faceRectInMask);
            }

            SampleDataSet.Next();

            if (faceRectInMask.width == 0 && faceRectInMask.height == 0)
            {
                removeFaceMask();
                Debug.Log("A face could not be detected from the input image.");
            }
        }
        /// <summary>
        /// Raises the set face mask button event.
        /// </summary>
        public void OnChangeFaceMaskButton()
        {
            removeFaceMask();

            SampleMaskData maskData = SampleDataSet.GetData();

            faceMaskTexture = Resources.Load(maskData.FileName) as Texture2D;
            faceMaskMat     = new Mat(faceMaskTexture.height, faceMaskTexture.width, CvType.CV_8UC4);
            OpenCVForUnity.Utils.texture2DToMat(faceMaskTexture, faceMaskMat);
            Debug.Log("faceMaskMat ToString " + faceMaskMat.ToString());

            if (maskData.LandmarkPoints != null)
            {
                faceRectInMask           = maskData.FaceRect;
                faceLandmarkPointsInMask = maskData.LandmarkPoints;
            }
            else
            {
                faceRectInMask           = detectFace(faceMaskMat);
                faceLandmarkPointsInMask = detectFaceLandmarkPoints(faceMaskMat, faceRectInMask);
            }

            SampleDataSet.Next();

            if (faceRectInMask.width == 0 && faceRectInMask.height == 0)
            {
                removeFaceMask();
                Debug.Log("A face could not be detected from the input image.");
            }

            //dumpRect(faceRectInMask);
            //dumpVector2(faceLandmarkPointsInMask);
            //dumpVector3(faceLandmarkPointsInMask);
            //MeshFilter mf = createFaceMesh(faceMaskTexture.width, faceMaskTexture.height);
            //ObjExporter.MeshToFile(mf, "Assets/FaceMaskSample/Resources/FaceMesh.obj");
        }