dlib 안드로이드예제에 좌표를 텍스트뷰에 출력하려고 합니다.
다음과 같이 로그창에 에러 가 출력이 되는데 무슨 문제 인지 모르겠습니다.
java.lang.ClassCastException: com.tzutalin.dlibtest.DlibDemoApp cannot be cast to android.app.Activity
at com.tzutalin.dlibtest.OnGetImageListener.onImageAvailable(OnGetImageListener.java:240)
at android.media.ImageReader$ListenerHandler.handleMessage(ImageReader.java:812)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.os.HandlerThread.run(HandlerThread.java:65)
print_textview = (TextView)((Activity)mContext).findViewById(R.id.pr_textview);
mInferenceHandler.post(
new Runnable() {
@Override
public void run() {
if (!new File(Constants.getFaceShapeModelPath()).exists()) {
mTransparentTitleView.setText("Copying landmark model to " + Constants.getFaceShapeModelPath());
FileUtils.copyFileFromRawToOthers(mContext, R.raw.shape_predictor_68_face_landmarks, Constants.getFaceShapeModelPath());
}
if(mframeNum % 3 == 0){
long startTime = System.currentTimeMillis();
synchronized (OnGetImageListener.this) {
results = mFaceDet.detect(mResizedBitmap);
}
long endTime = System.currentTimeMillis();
mTransparentTitleView.setText("Time cost: " + String.valueOf((endTime - startTime) / 1000f) + " sec");
}
// Draw on bitmap
if (results.size() != 0) {
for (final VisionDetRet ret : results) {
float resizeRatio = 4.5f;
Canvas canvas = new Canvas(mInversedBipmap);
// Draw landmark
ArrayList<Point> landmarks = ret.getFaceLandmarks();
for (Point point : landmarks) {
int pointX = (int) (point.x * resizeRatio);
int pointY = (int) (point.y * resizeRatio);
canvas.drawCircle(pointX, pointY, 4, mFaceLandmardkPaint);
String str;
str = "("+(int)pointX +" "+(int)pointY+")";
print_textview.setText(str);
}
}
}
mframeNum++;
mWindow.setRGBBitmap(mInversedBipmap);
mIsComputing = false;
}
});
Trace.endSection();
}
}