public static final String MODEL_NAME_ACTION =
"M_SenseME_Action_5.5.1.model";
public static final String MODEL_NAME_FACE_ATTRIBUTE =
"M_SenseME_Attribute_1.0.1.model";
public static final String MODEL_NAME_EYEBALL_CENTER =
"M_Eyeball_Center.model";
public static final String MODEL_NAME_EYEBALL_CONTOUR =
"M_SenseME_Iris_1.11.1.model";
public static final String MODEL_NAME_FACE_EXTRA =
"M_SenseME_Face_Extra_5.6.0.model";
public static final String MODEL_NAME_BODY_FOURTEEN =
"M_SenseME_Body_Fourteen_1.2.0.model";
public static final String MODEL_NAME_HAND =
"M_SenseME_Hand_5.0.0.model";
public static final String MODEL_NAME_AVATAR_CORE =
"M_SenseME_Avatar_Core_1.0.0.model";
......
2.3 スタンプファイルの使用
制御下のスタンプファイルを SD カードにコピーし、パスを取得します。スタンプの変更時は、SDK の API にパスを割り当てます。
HumanAction API を初期化するには loadModel を実行しますが、この処理は時間が掛かります。そのため、非同期に初期化してください。本バージョンでは、サブモデル追加用の API が提供されています。初期化に必要なmodelのみを使用し、後でさらにサブモデルを追加すれば、初期化にかかる時間を削減できます。
//HumanAction ハンドルの初期化は時間が掛かります。そのため、非同期操作を推奨します。
private void initHumanAction() {
new Thread(new Runnable() {
@Override
public void run() {
synchronized (mHumanActionHandleLock) {
//モデルをアセットフォルダーからメモリに読み込み、
//基になる st_mobile_human_action_create_from_buffer API を
//使用して、ハンドルを作成します
int result = mSTHumanActionNative
.createInstanceFromAssetFile(
FileUtils.getActionModelName(),
mHumanActionCreateConfig,
mContext.getAssets()
);
LogUtils.i(
TAG,
"the result for createInstance for human_action is %d",
result
);
if (result == 0) {
mIsCreateHumanActionHandleSucceeded = true;
mSTHumanActionNative.setParam(
STHumanActionParamsType.ST_HUMAN_ACTION_PARAM_BACKGROUND_BLUR_STRENGTH,
0.35f
);
}
}
}
}).start();
}
//作成用にデフォルト設定された設定パラメーター
//マルチスレッドを実行して、速度を最大限に早め、遅れを減らします。必要に応じてデフォルトのパラメーターを変更します。
//ビデオを検知するためにマルチスレッドを実行します
public final static int ST_MOBILE_HUMAN_ACTION_DEFAULT_CONFIG_VIDEO =
ST_MOBILE_TRACKING_MULTI_THREAD|
ST_MOBILE_TRACKING_ENABLE_DEBOUNCE|
ST_MOBILE_TRACKING_ENABLE_FACE_ACTION|
ST_MOBILE_ENABLE_FACE_DETECT|
ST_MOBILE_ENABLE_HAND_DETECT|
ST_MOBILE_ENABLE_SEGMENT_DETECT|
ST_MOBILE_DETECT_MODE_VIDEO;
//デフォルト設定を使用して画像を検知します
//画像の検知にはシングルスレッドのみ使用できます
public final static int ST_MOBILE_HUMAN_ACTION_DEFAULT_CONFIG_IMAGE =
ST_MOBILE_TRACKING_SINGLE_THREAD|
ST_MOBILE_ENABLE_FACE_DETECT|
ST_MOBILE_ENABLE_SEGMENT_DETECT|
ST_MOBILE_ENABLE_HAND_DETECT|
ST_MOBILE_DETECT_MODE_IMAGE;
HumanAction API を使用して、モデルを動的に追加または削除し、リソースの割り当てを改善できます。非同期に呼び出すこともできます (詳細については、CameraDisplayDoubleInput.java ファイルをご参照してください)。
//顔属性ハンドルを初期化します
private void initFaceAttribute() {
int result = mSTFaceAttributeNative.createInstanceFromAssetFile(
FileUtils.MODEL_NAME_FACE_ATTRIBUTE,
mContext.getAssets()
);
LogUtils.i(
TAG,
"the result for createInstance for faceAttribute is %d",
result
);
}
4.1.3 美化 API ハンドルの初期化
美化 API ハンドルを初期化します。
//美化ハンドルを初期化します
private void initBeauty() {
//美化およびプレビュー属性の幅と高さを初期化します
int result = mStBeautifyNative.createInstance(
mImageHeight,
mImageWidth
);
LogUtils.i(TAG, "the result is for initBeautify " + result);
... ...
}
4.1.4 スタンプ API ハンドルの初期化
スタンプ API ハンドルを初期化します。
//スタンプハンドルを初期化します
private void initSticker() {
iint result = mStStickerNative.createInstance(mContext, null);
if(mNeedSticker){
mStStickerNative.changeSticker(mCurrentSticker);
}
setHumanActionDetectConfig(
mNeedBeautify|mNeedFaceAttribute,
mStStickerNative.getTriggerAction()
);
LogUtils.i(
TAG, "the result for createInstance for sticker is %d",
result
);
}
//HumanAction のデフォルト設定
//すべてを検知するのは、時間が掛かり、CPU 使用率が高くなるため、推奨されません。
//必要な動作を検知するようにしてください。
public final static long ST_MOBILE_HUMAN_ACTION_DEFAULT_CONFIG_DETECT =
ST_MOBILE_FACE_DETECT | ST_MOBILE_EYE_BLINK |
ST_MOBILE_MOUTH_AH | ST_MOBILE_HEAD_YAW |
ST_MOBILE_HEAD_PITCH | ST_MOBILE_BROW_JUMP |
ST_MOBILE_HAND_GOOD | ST_MOBILE_HAND_PALM |
ST_MOBILE_HAND_LOVE | ST_MOBILE_HAND_HOLDUP |
ST_MOBILE_HAND_CONGRATULATE | ST_MOBILE_HAND_FINGER_HEART |
ST_MOBILE_DETECT_EYEBALL_CENTER|ST_MOBILE_DETECT_EYEBALL_CONTOUR;
//サポートされた顔検知設定
public final static long ST_MOBILE_FACE_DETECT = 0x00000001; //////<顔検知
//顔の動作
public final static long ST_MOBILE_EYE_BLINK = 0x00000002; ///<まばたきする
public final static long ST_MOBILE_MOUTH_AH = 0x00000004; ///口を大きく開く
public final static long ST_MOBILE_HEAD_YAW = 0x00000008; //////<頭を振る
public final static long ST_MOBILE_HEAD_PITCH = 0x00000010; ///<うなずく
public final static long ST_MOBILE_BROW_JUMP = 0x00000020; ///<眉を上げる
//ジェスチャ
public final static long ST_MOBILE_HAND_GOOD = 0x00000800; ///<親指を立てる 2048
public final static long ST_MOBILE_HAND_PALM = 0x00001000; ///<手のひら 4096
public final static long ST_MOBILE_HAND_LOVE = 0x00004000; ///<ハートのジェスチャ (16384)
public final static long ST_MOBILE_HAND_HOLDUP = 0x00008000; ///<手のひらを上に向ける 32768
public final static long ST_MOBILE_HAND_CONGRATULATE = 0x00020000; ///< お祝い (拳を握る) 131072
public final static long ST_MOBILE_HAND_FINGER_HEART = 0x00040000; //////< 片手でハートを作るジェスチャ (262144)
public final static long ST_MOBILE_HAND_TWO_INDEX_FINGER = 0x00080000;///< 並べた指 (524288)
public final static long ST_MOBILE_HAND_OK = 0x00000200; ///<OK のジェスチャ
public final static long ST_MOBILE_HAND_SCISSOR = 0x00000400; ///<勝利のポーズ
public final static long ST_MOBILE_HAND_PISTOL = 0x00002000; ///<ピストルのジェスチャ
public final static long ST_MOBILE_HAND_FINGER_INDEX = 0x00100000; ///<人差し指で指す
public final static long ST_MOBILE_HAND_FIST = 0x00200000; ///<拳のジェスチャ
public final static long ST_MOBILE_HAND_666 = 0x00400000; ///<ラッキー
public final static long ST_MOBILE_HAND_BLESS = 0x00800000; //////<禅のポーズ
public final static long ST_MOBILE_HAND_ILOVEYOU = 0x010000000000L; ///"愛している" のジェスチャ
public final static long ST_MOBILE_BODY_KEYPOINTS = 0x08000000; ///< 体の特徴点を検知
public final static long ST_MOBILE_SEG_BACKGROUND = 0x00010000; //////<前景と背景のセグメンテーション (65536)
public final static long ST_MOBILE_DETECT_EXTRA_FACE_POINTS = 0x01000000; ///< 240 の顔特徴点を検知
public final static long ST_MOBILE_DETECT_EYEBALL_CENTER = 0x02000000; ///< 眼球の中央点
public final static long ST_MOBILE_DETECT_EYEBALL_CONTOUR = 0x04000000; ///< 眼球の輪郭点
public final static long ST_MOBILE_BODY_ACTION1 = (long)1 << 32; ///龍拳
public final static long ST_MOBILE_BODY_ACTION2 = (long)1 << 33; ///一休さんのジェスチャ
public final static long ST_MOBILE_BODY_ACTION3 = (long)1 << 34; ///お手上げ
public final static long ST_MOBILE_BODY_ACTION4 = (long)1 << 35; ///スパイダーマン
public final static long ST_MOBILE_BODY_ACTION5 = (long)1 << 36; ///スーパーマン
//HumanAction 検知タイプの設定オプションを作成します
///サポートされている検知タイプ
public final static int ST_MOBILE_ENABLE_FACE_DETECT = 0x00000040; ///< 顔を検知
public final static int ST_MOBILE_ENABLE_HAND_DETECT = 0x00000080; ///< ジェスチャを検知
public final static int ST_MOBILE_ENABLE_SEGMENT_DETECT = 0x00000100; ///< 背景のセグメンテーションを検知
public final static int ST_MOBILE_ENABLE_FACE_EXTRA_DETECT = 0x00000200; ///< 240 の顔特徴点を検知
public final static int ST_MOBILE_ENABLE_EYEBALL_CENTER_DETECT = 0x00000400; ///< 眼球の中心点を検知
public final static int ST_MOBILE_ENABLE_EYEBALL_CONTOUR_DETECT = 0x00000800; ///< 眼球の輪郭を検知
public final static int ST_MOBILE_ENABLE_BODY_KEYPOINTS = 0x00001000; ///< 体の特徴点と動作を検知
public final static int ST_MOBILE_FACE_DETECT_FULL = 0x0000003F; ///< すべての顔の動きを検知
public final static int ST_MOBILE_HAND_DETECT_FULL = 0x001EFF00; ///< すべてのジェスチャを検知
///検知モード
public final static int ST_MOBILE_DETECT_MODE_VIDEO = 0x00020000; ///< ビデオの検知
public final static int ST_MOBILE_DETECT_MODE_IMAGE = 0x00040000; ///< 画像の検知
スタンプを変更するには、STMobileStickerNative API の changeSticker 関数を呼び出し、スタンプパスを入力します (setShowSticker 関数の使用に関する概要をご参照ください)。
//新しいエンジンを重ね合わせてスタンプを貼ります。
//スタンプ素材のパスを入力し、スタンプ素材 ID を返します。
public int addSticker(String addSticker) {
mCurrentSticker = addSticker;
int stickerId = mStStickerNative.addSticker(mCurrentSticker);
setHumanActionDetectConfig(
mNeedBeautify | mNeedFaceAttribute,
mStStickerNative.getTriggerAction()
);
}
//スタンプ素材 ID と一緒に、スタンプを削除します
result = mStStickerNative.removeSticker(packageId);
スタンプを変更後、StickerNative API の getNeededInputParams 関数を実行して、現在のスタンプに携帯電話センサーが必要かどうかを確認します。
//一般的なオブジェクトのトラッキング API ハンドルをリセットします
mSTMobileObjectTrackNative.reset();
4.5 SDK ハンドルの解放
OpenGL リソースは、OpenGL スレッドで解放される必要があります。
mGlSurfaceView.queueEvent(new Runnable() {
@Override
public void run() {
//スタンプ API ハンドルを解放します
mStStickerNative.destroyInstance();
//美化 API ハンドルを解放します
mStBeautifyNative.destroyBeautify();
//フィルター API ハンドルを解放します
mSTMobileStreamFilterNative.destroyInstance();
mRGBABuffer = null;
deleteTextures();
if(mSurfaceTexture != null){
mSurfaceTexture.release();
}
mGLRender.destroyFrameBuffers();
}
});
非 OpenGL リソースを解放する
synchronized (mHumanActionHandleLock){
//HumanAction API ハンドルを解放します
mSTHumanActionNative.destroyInstance();
}
//FaceAttribute API ハンドルを解放します
mSTFaceAttributeNative.destroyInstance();
//一般的なオブジェクトトラッキング API ハンドルを解放します
mSTMobileObjectTrackNative.destroyInstance();
5 JNI API の概要
5.1 STMobileCommon
本 API は、画像形式やエラーコードなどの静的定数と、いくつかの静的関数を定義します。詳細については STMobileCommon.java ファイルをご参照ください。
//色フォーマットの変換では、変換速度が遅いため、YUV420P 変換を使用することは推奨しません。
public static native int stColorConvert(
byte[] inputImage,
byte[] outputImage,
int width,
int height,
int type
);
//画像を回転します
public static native int stImageRotate(
byte[] inputImage,
byte[] outputImage,
int width,
int height,
int format,
int rotation
);
//点滅の閾値を [0,1] の信頼度で設定します。デフォルトの閾値は 0.5 です。
public native void setEyeblinkThreshold(float threshold);
//口を開く閾値を [0,1] の信頼度で設定します。デフォルトの閾値は 0.5 です。
public native void setMouthahThreshold(float threshold);
//口を開く閾値を [0,1] の信頼度で設定します。デフォルトの閾値は 0.5 です。
public native void setHeadyawThreshold(float threshold);
//口を開く閾値を [0,1] の信頼度で設定します。デフォルトの閾値は 0.5 です。
public native void setHeadpitchThreshold(float threshold);
//口を開く閾値を [0,1] の信頼度で設定します。デフォルトの閾値は 0.5 です。
public native void setBrowjumpThreshold(float threshold);
// 106 の顔特徴点を補正する閾値を設定します。
// 閾値が設定されていない場合は、デフォルト値 0.8 を入力します。
// 推奨値の範囲: [0.0, 1.0]。
// 閾値が大きいほど、ジッター除去効果が向上し、トラッキングの遅延が長くなります。
public native void setSmoothThreshold(float threshold);
// 顔の 3D 回転角度をデジッタリングする閾値を設定します。
// 閾値が設定されていない場合は、デフォルト値 0.5 を入力します。
// 推奨値の範囲: [0.0, 1.0]。
// 閾値が大きいほど、ジッター除去効果が向上し、トラッキングの遅延が長くなります。
public native void setHeadposeThreshold(float threshold);
5.2 STMobileHumanActionNative
HumanAction API を作成および検出する際に利用できる設定オプションを定義します。詳細については STMobileHumanActionNative.java ファイルをご参照ください。
//デフォルト設定によりビデオを検知します
public final static int ST_MOBILE_HUMAN_ACTION_DEFAULT_CONFIG_VIDEO;
//デフォルト設定により画像を検知します
public final static int ST_MOBILE_HUMAN_ACTION_DEFAULT_CONFIG_IMAGE;
//インスタンスを作成します
public native int createInstance(String modelpath, int config);
//リソースフォルダーからインスタンスを作成します
public native int createInstanceFromAssetFile(
String assetModelpath,
int config,
AssetManager assetManager
);
//サブモデル、st_mobile_human_action_create、
//および st_mobile_human_action_create_with_sub_models により
//human_action 検知 API ハンドルを作成します。呼び出せるのは 1 つのみです。
public native int createInstanceWithSubModels(
String[] modelPaths,
int modelCount,
int config
);
//サブモデルを追加します。
//スレッドセーフではなく、st_mobile_human_action_detect の実行中の、
//使用しているサブモデルの上書きには対応していません。
public native int addSubModel(String modelPath);
//リソースフォルダーからサブモデルを追加します
public native int addSubModelFromAssetFile(
String assetModelpath,
AssetManager assetManager
);
//追加されたサブモデルを削除します
public native int removeSubModelByConfig(int config);
//リソースフォルダーからサブモデルを追加します
public native int addSubModelFromAssetFile(
String assetModelpath,
AssetManager assetManager
);
//設定する動作パラメータータイプ
public native int setParam(int type, float value);
//顔特徴点、動作情報、前景と背景のセグメンテーションなどを検知します
public native STHumanAction humanActionDetect(
byte[] imgData,
int imageFormat,
long detect_config,
int orientation,
int imageWidth,
int imageHeight
);
//リソースを解放します
public native void destroyInstance();
//human_action API の結果から表情を取得します
public static native boolean[] getExpression(
STHumanAction humanAction,
int orientation,
boolean needMirror
);
//表情の閾値を設定します
public static native void setExpressionThreshold(
int detectExpression,
float threshold
);
//インスタンスを作成します
public native int createInstance(String modelpath);
////顔属性検知
public native int detect(
byte[] image,
int format,
int width,
int height,
STMobile106[] mobile106,
STFaceAttribute[] attributes
);
//リソースを解放します
public native void destroyInstance();
//美化 API ハンドルを作成します
public native int createInstance(int width, int height);
//美化パラメーターを設定します
public native int setParam(int type, float value);
//画像バッファーを美化します。
//OpenGL 環境で呼び出す必要があります (OpenGL スレッドで実行します)。
public native int processBufferInGLContext(
byte[] pInputImage,
int inFormat,
int outputWidth,
int outputHeight,
STHumanAction humanActionInput,
byte[] pOutImage,
int outFormat,
STHumanAction humanActionOutput
);
//画像を美化します。
//本 API は OpenGL 環境で関数を実行しない (OpenGL スレッドで実行しない)
//ユーザー向けです。
public native int processBufferNotInGLContext(
byte[] pInputImage,
int inFormat,
int outputWidth,
int outputHeight,
STHumanAction humanActionInput,
byte[] pOutImage,
int outFormat,
STHumanAction humanActionOutput
);
//OpenGL ES でテクスチャを美化します。OpenGL 環境で呼び出す必要があります。
public native int processTexture(
int textureIn,
int outputWidth,
int outputHeight,
STHumanAction humanActionInput,
int textureOut,
STHumanAction humanActionOutput
);
//OpenGL ES でテクスチャを美化します。OpenGL 環境で呼び出す必要があります。
//バッファーと顔データを出力できます。
public native int processTextureAndOutputTexture(
int textureIn,
int outputWidth,
int outputHeight,
STHumanAction humanActionInput,
int textureOut,
byte[] outputBuf,
int format,
STHumanAction humanActionOutput
);
//OpenGL 環境でインスタンスを解放します
public native void destroyBeautify();
//スタンプ API を作成します
public native int createInstance(Context context, String zipPath);
//OpenGL ES でテクスチャにスタンプを張ります。
//OpenGL 環境で呼び出す必要があります。RBGA 画像形式のみサポートしています。
public native int processTexture(
int textureIn,
STHumanAction humanAction,
int rotate,
int imageWidth,
int imageHeight,
int frontStickerRotate,
boolean needsMirroring,
int textureOut
);
//OpenGL ES でテクスチャにスタンプを張ります。
//OpenGL 環境で呼び出す必要があります。RBGA 画像形式のみサポートしています。
//バッファー出力もサポートしています。
public native int processTextureAndOutputBuffer(
int textureIn,
STHumanAction humanAction,
int rotate,
int imageWidth,
int imageHeight,
int frontStickerRotate,
boolean needsMirroring,
int textureOut,
int outFmt,
byte[] imageOut
);
//スタンプのパスを変更します
public native int changeSticker(String path);
//アセットファイルからスタンプを変更します
public native int changeStickerFromAssetsFile(
String assetFilePath,
AssetManager assetManager
);
//素材パッケージをあらかじめロードします
public native int preloadPackage(String path);
//バッファー内の素材パッケージをあらかじめロードします
public native int preloadPackageFromAssetsFile(
String assetFilePath,
AssetManager assetManager
);
//スタンプを追加します
public native int addSticker(String path);
//アセットファイルからスタンプを追加します
public native int addStickerFromAssetsFile(
String assetFilePath,
AssetManager assetManager
);
//スタンプを削除します
public native int removeSticker(int packageId);
//すべてのスタンプを削除します
public native void removeAllStickers();
//スタンプモジュールを作成します
public native int createModule(
int moduleType,
int packageId,
int moduleId
);
//スタンプモジュールを素材パッケージに移動します
public native int moveModuleToPackage(int packageId, int moduleId);
//スタンプモジュールを削除します。非 OpenGL スレッドで呼び出す必要があります。
//次のフレーム処理時に、OpenGL リソースを解放します。
public native int removeModule(int moduleId);
//スタンプモジュール情報を取得します
public native STModuleInfo[] getModules();
//素材パッケージ ID の配列を取得します
public native int[] getPackageIds();
//現在のスタンプのトリガーアクションを取得します
public native long getTriggerAction();
//レンダリングする前に素材が読み込まれるのを待ちます。
//フレームやショートビデオの 3D 描画など、
//モデルの読み込みとレンダリングを待つために使用します。
public native int setWaitingMaterialLoaded(boolean needWait);
//スタンプ素材画像で使用される最大メモリを設定します
public native int setMaxMemory(int value);
//サウンド停止通知関数
public native int setSoundPlayDone(String name);
//インスタンスを破壊します。OpenGL 環境で呼び出す必要があります。
public native void destroyInstance();
//アバター関数に対応するモデルをロードします
public native int loadAvatarModel(String modelpath);
//アセットフォルダーからアバター関数に対応するモデルをロードします
public native int loadAvatarModelFromAssetFile(
String assetModelpath,
AssetManager assetManager
);
//アバター関数に対応するモデルを削除し、関連データを消去します
public native int removeAvatarModel();
//指定したスタンプモジュール向けの遷移を追加します
public native int addModuleTransition(
int moduleId,
int targetState,
STCondition[] conditionArray,
STTransParam[] paramArray,
int[] transId
);
//指定したスタンプモジュール向けの遷移を削除します
public native int removeTransition(int transId);
//指定したスタンプモジュール向けのすべての遷移を追加します
public native int clearModuleTransition(int moduleId);
//int、long、bool、float、および string などの XXX データ型のパラメーターを設定します
public native int setParamXXX(int moduleId, int paramType, int value);
//int データ型のパラメーターを取得します
public native int getParamInt(int moduleId, int paramType);
//素材パッケージを変更または追加する度に呼び出される、
//現在必要なカスタム入力パラメーターのリストを取得します
public native int getNeededInputParams();
//インスタンスを作成します
public native int createInstance();
//フィルタータイプを設定します。OpenGL スレッド内で呼び出す必要があります。
public native int setStyle(String styleModelPath);
//フィルターパラメーターを設定します
public native int setParam(int type, float value);
//OpenGL ES のテクスチャにフィルターを適用します。
//OpenGL スレッド内で呼び出す必要があります。
public native int processTexture(
int textureIn,
int imageWidth,
int imageHeight,
int textureOut
);
//OpenGL ES のテクスチャにフィルターを適用し、バッファーを出力します。
//OpenGL スレッド内で呼び出す必要があります。
public native int processTextureAndOutputBuffer(
int textureIn,
int imageWidth,
int imageHeight,
int textureOut,
byte[] outImage,
int outFormat
);
//画像バッファーにフィルターを適用します。OpenGL スレッド内で呼び出す必要があります。
public native int processBuffer(
byte[] inputImage,
int inFormat,
int imageWidth,
int imageHeight,
byte[] outImage,
int outFormat
);
//美化ハンドルを解放します。OpenGL スレッド内で呼び出す必要があります。
public native void destroyInstance();
5.8 STMobileFilterNative
CPU フィルター API。詳細については STMobileFilterNative.java ファイルをご参照ください。
//フィルターハンドルを作成します
public native int createInstance();
//フィルタータイプを設定します
public native int setStyle(String styleModelPath);
//フィルターパラメーターを設定します
public native int setParam(int type, float value);
//画像にフィルターを適用します
public native int process(
byte[] inputImage,
int inFormat,
int imageWidth,
int imageHeight,
byte[] outImage,
int outFormat
);
//フィルター API ハンドルを解放します
public native void destroyInstance();
//一般的なオブジェクトトラッキングハンドルを作成します
public native int createInstance();
//トラッキング対象の顔枠を設定します
public native int setTarget(
byte[] inputImage,
int inFormat,
int imageWidth,
int imageHeight,
STRect rect
);
//連続したビデオフレーム内の対象をリアルタイムで高速にトラッキングし、
//対象領域の顔枠を確実に返します
public native STRect objectTrack(
byte[] inputImage,
int inFormat,
int imageWidth,
int imageHeight,
float[] resultScore
);
//一般的なオブジェクトトラッキングハンドルをリセットします
public native void reset();
//インスタンスを破壊します
public native void destroyInstance();
5.10 STHumanAction
//human_action 検知結果をミラーリングします
public static native STHumanAction humanActionMirror(
int width,
STHumanAction humanAction
);
//human_action 検知結果を回転します
public static native STHumanAction humanActionRotate(
int width,
int height,
int orientation,
boolean rotateBackGround,
STHumanAction humanAction
);
//human_action 検知結果をリサイズします
public static native STHumanAction humanActionResize(
float scale,
STHumanAction humanAction
);