Я использовал OpenCV C / C ++ в прошлом, и в настоящее время я пробую Android. Я обнаруживаю черты лица. Я использую пример OpenCV для обнаружения лица, и я обнаруживаю особенности через каскады. Я хочу спросить вас:
1) как захватить область в прямоугольнике с памятью переменной / устройства:
В OpenCV это работает так:
cvSetImageROI(img1, cvRect(10, 15, 150, 250));
IplImage *img2 = cvCreateImage(cvGetSize(img1),
img1->depth,
img1->nChannels);
cvCopy(img1, img2, NULL);
В примере с Android у меня есть массив с прямоугольниками найденных лиц:
Rect[] facesArray = faces.toArray();
for (int i = 0; i < facesArray.length; i++)
Core.rectangle(mRgba, facesArray[i].tl(), facesArray[i].br(), FACE_RECT_COLOR, 3);
Но я понятия не имею, как его сохранить, потому что я не могу работать с IplImage. Можете ли вы рассказать мне немного об этом или дать какой-нибудь источник, который я могу изучить?
2) если есть какой-либо способ установить onClick для областей, которые были найдены на виде с камеры, чтобы я мог щелкнуть по выбранному лицу, записать его в какую-либо переменную или сохранить в памяти
я думаю, ты ищешь mRgba.submat (facesArray [I])
(очень предвзятое личное мнение: вы все еще используете IplImages (он же c-api)? что? плохая привычка. переходите к api c ++!)
Других решений пока нет …