Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

i have drawn the rectangle for mouth and i would like to crop that drawn position .how to do it?i am a beginner to openCV

here is my code for mouth detection.

include "stdio.h"

include <iostream>

include <opencv2 highgui="" highgui.hpp="">

include <opencv2 objdetect="" objdetect.hpp="">

include <opencv2 imgproc="" imgproc.hpp="">

int main(int argc, const char** argv) { VideoCapture cap(0); CascadeClassifier face, mouth;

face.load("/home/adarsh/opencv/opencv-4.9/data/haarcascades/haarcascade_frontalface_default.xml");

mouth.load("/home/adarsh/opencv/opencv-2.4.9/data/haarcascades/haarcascade_mcs_mouth.xml");

Mat frame, grayframe, testframe;

while (1) { cap.read(frame); if (!cap.read(frame)) { printf("an error while taking the frame from cap"); } vector<rect> faces; cvtColor(frame, grayframe, CV_BGR2GRAY); equalizeHist(grayframe, testframe); face.detectMultiScale(testframe, faces, 1.1, 3, CV_HAAR_SCALE_IMAGE, Size(30, 30)); for (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); vector<rect> mouthi; mouth.detectMultiScale(face, mouthi); for (int k = 0; k < mouthi.size(); k++) { Point pt1(mouthi[0].x + faces[i].x, mouthi[0].y + faces[i].y); Point pt2(pt1.x + mouthi[0].width, pt1.y + mouthi[0].height); rectangle(frame, pt1, pt2, Scalar(255, 0, 0), 1, 8, 0); }

    }



    imshow("output", frame);

    int c = waitKey(10);
    if ((char) c == 27) {
        break;
    }
}
return 0;

}

i have drawn the rectangle for mouth and i would like to crop that drawn position .how to do it?i am a beginner to openCV

here is my code for mouth detection.

include "stdio.h"

include <iostream>

include <opencv2 highgui="" highgui.hpp="">

include <opencv2 objdetect="" objdetect.hpp="">

include <opencv2 imgproc="" imgproc.hpp="">

int main(int argc, const char** argv) { VideoCapture cap(0); CascadeClassifier face, mouth;

face.load("/home/adarsh/opencv/opencv-4.9/data/haarcascades/haarcascade_frontalface_default.xml");

mouth.load("/home/adarsh/opencv/opencv-2.4.9/data/haarcascades/haarcascade_mcs_mouth.xml");

Mat frame, grayframe, testframe;

while (1) { cap.read(frame); cap.read(frame);

    if (!cap.read(frame))  {
         printf("an error while taking the frame from cap");
     }
        vector<rect> 
    vector<Rect> faces;
      cvtColor(frame, grayframe, CV_BGR2GRAY);
      equalizeHist(grayframe, testframe);
      face.detectMultiScale(testframe, faces, 1.1, 3, CV_HAAR_SCALE_IMAGE,
             Size(30, 30));
      for (int i = 0; i < faces.size(); i++) i++)
           {
         rectangle(frame, faces[i], Scalar(255, 0, 0), 1, 8, 0);
          Mat face = frame(faces[i]);
          cvtColor(face, face, CV_BGR2GRAY);
            vector<rect> 
        vector<Rect> mouthi;
          mouth.detectMultiScale(face, mouthi);
          for (int k = 0; k < mouthi.size(); k++)  {
             Point pt1(mouthi[0].x + faces[i].x, mouthi[0].y + faces[i].y);
              Point pt2(pt1.x + mouthi[0].width, pt1.y + mouthi[0].height);
                              rectangle(frame, pt1, pt2, Scalar(255, 0, 0), 1, 8, 0);
}

     }

          }

    imshow("output", frame);

    int c = waitKey(10);
    if ((char) c == 27) {
        break;
    }
}
return 0;

}

click to hide/show revision 3
reformat source code

i have drawn the rectangle for mouth and i would like to crop that drawn position .how to do it?i am a beginner to openCV

here is my code for mouth detection.

include "stdio.h"

include <iostream>

include <opencv2 highgui="" highgui.hpp="">

include <opencv2 objdetect="" objdetect.hpp="">

include <opencv2 imgproc="" imgproc.hpp="">

#include "stdio.h"
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/imgproc/imgproc.hpp>

int main(int argc, const char** argv) {
 VideoCapture cap(0);
 CascadeClassifier face, mouth;

mouth;
face.load("/home/adarsh/opencv/opencv-4.9/data/haarcascades/haarcascade_frontalface_default.xml");
 mouth.load("/home/adarsh/opencv/opencv-2.4.9/data/haarcascades/haarcascade_mcs_mouth.xml");
 Mat frame, grayframe, testframe;

while (1) { cap.read(frame);

cap.read(frame);
 if (!cap.read(frame))
 {
{
 printf("an error while taking the frame from cap");
}
vector<Rect> faces;
faces; 
cvtColor(frame, grayframe, CV_BGR2GRAY);
  equalizeHist(grayframe, testframe);
  face.detectMultiScale(testframe, faces, 1.1, 3, CV_HAAR_SCALE_IMAGE,
  Size(30, 30));
for (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);
  vector<Rect> mouthi;
  mouth.detectMultiScale(face, mouthi);
  for (int k = 0; k < mouthi.size(); k++)
 {
{
 Point pt1(mouthi[0].x + faces[i].x, mouthi[0].y + faces[i].y);
  Point pt2(pt1.x + mouthi[0].width, pt1.y + mouthi[0].height);
  rectangle(frame, pt1, pt2, Scalar(255, 0, 0), 1, 8, 0);
 }
}
 }
imshow("output", frame);
int c = waitKey(10);
if ((char) c == 27) {
27){
 break;
}
}
 }
return 0;
}

}