OpenCV4Android FaceDetection 샘플을 사용하고 있습니다.Android + OpenCV : OnTouch getX(), getY()가 올바른 값을 반환하지 않습니다.
@Override
public boolean onTouchEvent(MotionEvent e) {
onClickX = e.getX();
onClickY = e.getY();
switch (e.getAction()) {
case MotionEvent.ACTION_DOWN:
// something not important for this matter happens here
}
return super.onTouchEvent(e);
}
onCameraFrame 방법에서는 전 : onTouchEvent에서 생성
private float onClickX;
private float onClickY;
, 온 클릭 좌표 저장
private Rect[] facesArray;
글로벌 플로트 : I 현재 spoted 얼굴 사각형으로 글로벌 테이블이 보기와 함께 매트를 되찾고 있어요 :
Core.circle(mRgba,new Point(onClickX,onClickY), 40, new Scalar(0, 255, 0, 255));
그래서 어떻게됩니까? onTouchEvent에서 가져온 좌표에 작은 녹색 원을 그려 전역 변수로 보냅니다. 이러한 변수 (onClickX, onClickY)는 onCameraFrame에서 읽고 core.circle() 함수에 사용됩니다. 제 문제는 원은 정확하게 손가락 아래에 그려지지는 않지만 항상 오른쪽 하단에 그려지는 것입니다. 이런 것입니다 : https://dl.dropboxusercontent.com/u/90/device-2013-07-24-004207.png
을 그리고이 원이 화면에 때마다 내 손가락에 같은 방향/위치에 항상이며, 왼쪽 상단 모서리에 부합, 오른쪽 아래 모서리에 사라져은 (외부 화면 이동) . 나는 getRawX, geyRawY를 사용하여 시도했다 -> 결과는 동일하다. 나는 왜 명령어가 정확한 탭 위치가 아니라 어딘가 근처에 있는지 알려주지 않는다. 나는 이것을 고칠 수있는 단서가 없다.