haar cascade 분류기를 사용해서 프레임마다 두 눈을 검출하는데 검출되는 눈동자가 왼쪽 눈인지 오른쪽 눈인지 순서를 구분할 수 있는 방법이 있을까요?
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { // 카메라 프레임 가져오는 메서드
mRgba = inputFrame.rgba();
mGray = inputFrame.gray();
if (mAbsoluteFaceSize == 0) {
int height = mGray.rows();
if (Math.round(height * mRelativeFaceSize) > 0) {
mAbsoluteFaceSize = Math.round(height * mRelativeFaceSize); // 높이 * 0.2 를 반올림
}
// mNativeDetector.setMinFaceSize(mAbsoluteFaceSize);
}
// MatOfRect faces = new MatOfRect();
MatOfRect eyes = new MatOfRect();
if (mDetectorType == JAVA_DETECTOR) { // 자바 디텍터 일때
if (mJavaDetector != null) // 객체가 null 이 아닐때
// mJavaDetector.detectMultiScale(mGray, faces, 1.1, 2, 2, // TODO: objdetect.CV_HAAR_SCALE_IMAGE
// new Size(mAbsoluteFaceSize, mAbsoluteFaceSize), new Size());
if (mJavaDetectorEye != null) {
mJavaDetectorEye.detectMultiScale(mGray, eyes);
}
}
else if (mDetectorType == NATIVE_DETECTOR) {
/*if (mNativeDetector != null)
mNativeDetector.detect(mGray, faces);*/
}
else {
Log.e(TAG, "Detection method is not selected!");
}
// Rect[] facesArray = faces.toArray();
Rect[] eyesArray = eyes.toArray();
for (int i = 0; i < eyesArray.length; i++) // 인식된 눈 갯수
{
Rect r = eyesArray[i];
Rect eyearea = new Rect(r.x + r.width/8, (int)(r.y + r.height/2.0), (int)(r.width - r.width/2.5), (int)(r.height/2.5)); // 눈 검출된 영역 크기 조절
Core.rectangle(mRgba, eyearea.tl(), eyearea.br(), new Scalar(255, 0, 0, 255), 2); // 조절된 눈 영역 사각형으로 그리기
}
return mRgba;
}