private int GetFaceExpressionIntensity(PXCMFaceData.ExpressionsData data, FaceExpression faceExpression) { PXCMFaceData.ExpressionsData.FaceExpressionResult score; data.QueryExpression(faceExpression, out score); //if (score.intensity > 0) Debug.WriteLine(faceExpression + ":" +score.intensity); return(score.intensity); }
public void DrawExpressions(PXCMFaceData.Face face) { Debug.Assert(face != null); if (m_bitmap == null || !Expressions.Checked) { return; } PXCMFaceData.ExpressionsData expressionsOutput = face.QueryExpressions(); if (expressionsOutput == null) { return; } lock (m_bitmapLock) { using (Graphics graphics = Graphics.FromImage(m_bitmap)) using (var brush = new SolidBrush(m_faceTextOrganizer.Colour)) { const int imageSizeWidth = 18; const int imageSizeHeight = 18; int positionX = m_faceTextOrganizer.ExpressionsLocation.X; int positionXText = positionX + imageSizeWidth; int positionY = m_faceTextOrganizer.ExpressionsLocation.Y; int positionYText = positionY + imageSizeHeight / 4; foreach (var expressionEntry in m_expressionDictionary) { PXCMFaceData.ExpressionsData.FaceExpression expression = expressionEntry.Key; PXCMFaceData.ExpressionsData.FaceExpressionResult result; bool status = expressionsOutput.QueryExpression(expression, out result); if (!status) { continue; } Bitmap cachedExpressionBitmap; bool hasCachedExpressionBitmap = m_cachedExpressions.TryGetValue(expression, out cachedExpressionBitmap); if (!hasCachedExpressionBitmap) { cachedExpressionBitmap = (Bitmap)m_resources.GetObject(expressionEntry.Value); m_cachedExpressions.Add(expression, cachedExpressionBitmap); } using (var font = new Font(FontFamily.GenericMonospace, m_faceTextOrganizer.FontSize, FontStyle.Bold)) { Debug.Assert(cachedExpressionBitmap != null, "cachedExpressionBitmap != null"); graphics.DrawImage(cachedExpressionBitmap, new Rectangle(positionX, positionY, imageSizeWidth, imageSizeHeight)); var expressionText = String.Format("= {0}", result.intensity); graphics.DrawString(expressionText, font, brush, positionXText, positionYText); positionY += imageSizeHeight; positionYText += imageSizeHeight; } } } } }
public void DrawExpressions(PXCMFaceData.Face face) { Debug.Assert(face != null); // 映像がNULL または 表情認識チェックがOFFの場合処理を終了 if (m_bitmap == null) { return; } // パラメータ取得 PXCMFaceData.ExpressionsData expressionsOutput = face.QueryExpressions(); // 値を正しく取得出来なかった場合処理を終了 if (expressionsOutput == null) { return; } lock (m_bitmapLock) { using (var brush = new SolidBrush(m_faceTextOrganizer.Colour)) { const int imageSizeWidth = 18; const int imageSizeHeight = 18; /* 座標 */ int positionX = m_faceTextOrganizer.ExpressionsLocation.X; int positionXText = positionX + imageSizeWidth; int positionY = m_faceTextOrganizer.ExpressionsLocation.Y; int positionYText = positionY + imageSizeHeight / 4; foreach (var expressionEntry in m_expressionDictionary) { PXCMFaceData.ExpressionsData.FaceExpression expression = expressionEntry.Key; PXCMFaceData.ExpressionsData.FaceExpressionResult result; bool status = expressionsOutput.QueryExpression(expression, out result); if (!status) { continue; } //Console.WriteLine("えくすぷれっしょん" + expression); using (var font = new Font(FontFamily.GenericMonospace, m_faceTextOrganizer.FontSize, FontStyle.Bold)) { var expressionText = String.Format("= {0}", result.intensity); //graphics.DrawString(expressionText, font, brush, positionXText, positionYText); //間隔をあける smileCnt++; if (smileCnt > smileN) { smileCnt = 0; //smileである時に処理をする if (expression.ToString() == "EXPRESSION_SMILE") { satisfaction = result.intensity; RunExpression(); } } positionY += imageSizeHeight; positionYText += imageSizeHeight; } } } } }
public void DisplayExpression(PXCMFaceData.ExpressionsData.FaceExpressionResult expressionResult, PXCMFaceData.ExpressionsData.FaceExpression faceExpression) { ExpressionGUIText.GetComponent <TextMesh> ().text = faceExpression.ToString() + "\n" + expressionResult.intensity.ToString(); }
private int GetFaceExpressionIntensity(PXCMFaceData.ExpressionsData data, FaceExpression faceExpression) { PXCMFaceData.ExpressionsData.FaceExpressionResult score; data.QueryExpression(faceExpression, out score); return(score.intensity); }
private bool CheckFaceExpression(PXCMFaceData.ExpressionsData data, FaceExpression faceExpression, int threshold) { return(GetFaceExpressionIntensity(data, faceExpression) > threshold); }
/* * @brief Checks if expression is currently enabled in configuration. * @param[in] expression - single face expression * @return true - enabled, false - disabled. */ public Boolean IsExpressionEnabled(PXCMFaceData.ExpressionsData.FaceExpression expression) { return(PXCMFaceConfiguration_ExpressionsConfiguration_IsExpressionEnabled(instance.configs.expressionInstance, expression)); }
/* * @brief Disables specific expression. * @param[in] expression - single face expression. */ public void DisableExpression(PXCMFaceData.ExpressionsData.FaceExpression expression) { PXCMFaceConfiguration_ExpressionsConfiguration_DisableExpression(instance.configs.expressionInstance, expression); }
/* * @brief Enables specific expression. * @param[in] expression - single face expression. * @return PXCM_STATUS_NO_ERROR - success. * PXCM_STATUS_PARAM_UNSUPPORTED - expression is unsupported. */ public pxcmStatus EnableExpression(PXCMFaceData.ExpressionsData.FaceExpression expression) { return(PXCMFaceConfiguration_ExpressionsConfiguration_EnableExpression(instance.configs.expressionInstance, expression)); }
internal static extern Boolean PXCMFaceConfiguration_ExpressionsConfiguration_IsExpressionEnabled(IntPtr instance, PXCMFaceData.ExpressionsData.FaceExpression expression);
internal static extern void PXCMFaceConfiguration_ExpressionsConfiguration_DisableExpression(IntPtr instsance, PXCMFaceData.ExpressionsData.FaceExpression expression);
internal static extern pxcmStatus PXCMFaceConfiguration_ExpressionsConfiguration_EnableExpression(IntPtr instance, PXCMFaceData.ExpressionsData.FaceExpression expression);
private int GetFaceExpressionIntensity(PXCMFaceData.ExpressionsData data, FaceExpression faceExpression) { PXCMFaceData.ExpressionsData.FaceExpressionResult score; data.QueryExpression(faceExpression, out score); //if (score.intensity > 0) Debug.WriteLine(faceExpression + ":" +score.intensity); return score.intensity; }
private bool CheckFaceExpression(PXCMFaceData.ExpressionsData data, FaceExpression faceExpression, int threshold) { return GetFaceExpressionIntensity(data, faceExpression) > threshold; }
private int GetFaceExpressionIntensity(PXCMFaceData.ExpressionsData data, FaceExpression faceExpression) { PXCMFaceData.ExpressionsData.FaceExpressionResult score; data.QueryExpression(faceExpression, out score); return score.intensity; }
public static string GetName(this PXCMFaceData.ExpressionsData.FaceExpression expression) { var pieces = expression.ToString().Split('_'); return(string.Join(" ", pieces.Skip(1).Select(p => p.ToLower()))); }