我想檢測口含OpenCV的圖像中,所以我用下面的代碼:檢測嘴OpenCV的
#include "face_detection.h"
using namespace cv;
// Function detectAndDisplay
void detectAndDisplay(const std::string& file_name, cv::CascadeClassifier& face_cascade, cv::CascadeClassifier& mouth_cascade)
{
Mat frame = imread(file_name);
std::vector<Rect> faces;
Mat frame_gray;
Mat crop;
Mat res;
Mat gray;
cvtColor(frame, frame_gray, COLOR_BGR2GRAY);
equalizeHist(frame_gray, frame_gray);
// Detect faces
face_cascade.detectMultiScale(frame_gray, faces, 1.1, 3, 0 | CASCADE_SCALE_IMAGE, Size(30, 30));
for(unsigned int i=0;i<faces.size();i++)
{
rectangle(frame,faces[i],Scalar(255,0,0),1,8,0);
Mat face = frame(faces[i]);
cvtColor(face,face,CV_BGR2GRAY);
std::vector <Rect> mouthi;
mouth_cascade.detectMultiScale(face, mouthi);
for(unsigned int k=0;k<mouthi.size();k++)
{
Point pt1(mouthi[k].x+faces[i].x , mouthi[k].y+faces[i].y);
Point pt2(pt1.x+mouthi[k].width, pt1.y+mouthi[k].height);
rectangle(frame, pt1,pt2,Scalar(0,255,0),1,8,0);
}
}
imshow("Frame", frame);
waitKey(33);
}
的分類與haarcascade_frontalface_alt.xml
和haarcascade_mcs_mouth.xml
。
臉部檢測正確,但嘴巴不是:我也獲得了眼睛和其他部分,如額頭。 有沒有辦法只檢測嘴巴?
嘿,我可以從中獲得這些圖像的數據集的鏈接?我有我的圖像,但我無法找到該頁面的鏈接。我需要引用。謝謝! –
@AninditKarmakar嗨,它是KDEF數據集:http://www.emotionlab.se/resources/kdef – minomic
@minomic你可以看看這個話題:http://stackoverflow.com/questions/37921913/java-and- haarcascade臉和嘴檢測口,作爲最前端 – Adamo