/// <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"); }