я представляю в OpenCV. Я пытаюсь распознать несколько частей лица (глаза и рот). Мое программное обеспечение правильно распознает лицо и глаза, но у меня есть некоторые проблемы со ртом. Он показывает мне несколько ртов в верхнем месте от лица, я понял, что в нижнем месте от лица он показывает рот, и мне нужно ограничить изображение от лица, чтобы взять только рот.
У меня есть следующий код:
Mat faceRoi = frame_gray(faces[i]);
vector<Rect> eyes;
eyes_cascade.detectMultiScale(faceRoi, eyes);
cout << "NUMERO EYES: " << eyes.size() << endl;
for(unsigned int j=0; j<eyes.size(); j++)
{
Point center( faces[i].x + eyes[j].x + eyes[j].width * 0.5, faces[i].y + eyes[j].y + eyes[j].height * 0.5);
int radius = cvRound( (eyes[j].width + eyes[j].height) * 0.3 );
circle(frame, center, radius, Scalar( 255, 0, 0 ), 3, 8, 0 );
}
cout << " FACE-ROI ----> ROWS: " << faceRoi.rows << " COLS: " << faceRoi.cols << endl;
vector<Rect> smiles;
smile_cascade.detectMultiScale(smileRoi, smiles);
cout << "NUMERO SMILES: " << smiles.size() << endl;
for(unsigned int k=0; k<smiles.size(); k++)
{
Point center(faces[i].x + smiles[k].x + smiles[k].width * 0.5, faces[i].y + smiles[k].y + smiles[k].height * 0.5);
ellipse(frame, center, Size(smiles[k].width * 0.5, smiles[k].height * 0.5), 0, 0, 360, Scalar(0,255,255), 3, 8, 0);
}
Мой вопрос следующий... как именно я могу скопировать изображение из другого с новыми ограничениями (диапазон, мне нужна только середина или 2/3 часть этого изображения, место изо рта).
Надеюсь, кто-нибудь может мне помочь! Благодарю вас!