通过Opencv自带的Haar检测并框出的人脸如何单独输出

persimmonunderhill 2015-10-16 04:56:12
如题所述,目前程序可以通过摄像头检测并框出人脸。
我现在想把检测到的人脸区域截出,做进一步处理
请问如何能够做到把检测到的人脸区域图像单独输出,
如果能够提供示范将不胜感激~!求各位大神指导
...全文
787 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingzhaoli 2017-11-06
  • 打赏
  • 举报
回复
在rectangle语句下面添加Mat image_cut=frame(cvRect(x,y,w,h)) ,然后显示使用imshow,保存使用imwrite("文件名", image_cut)
_qwerty 2017-03-07
  • 打赏
  • 举报
回复
您好,请问您最后是怎么解决的,可以分享一下么
persimmonunderhill 2015-10-16
  • 打赏
  • 举报
回复
大神们帮帮忙哇,实在是弄不出来
persimmonunderhill 2015-10-16
  • 打赏
  • 举报
回复
using namespace cv;
using namespace std;

string face_cascade_name = "haarcascade_frontalface_alt.xml";
CascadeClassifier face_cascade;
string window_name = "人脸识别";

void detectAndDisplay(Mat frame){
	std::vector<Rect> faces;
	Mat frame_gray;

	cvtColor(frame, frame_gray, CV_BGR2GRAY);
	equalizeHist(frame_gray, frame_gray);

	face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(40, 40));

	for (int i = 0; i < faces.size(); i++){

		Point pt1(faces[i].x + faces[i].width, faces[i].y + faces[i].height);
		Point pt2(faces[i].x, faces[i].y);

		rectangle(frame, pt1, pt2, cvScalar(255, 0, 0, 0), 3, 8, 0);

	}

	imshow(window_name, frame);
}

int main(int argc, char* argv[])
 {
	VideoCapture cap(0);
	if (!cap.isOpened())
		return -1;

	Mat edges;

	if (!face_cascade.load(face_cascade_name)){         //( !eyes_cascade.load(eyes_cascade_name)){ 
		printf("无法加载级联分类器文件!\n");
		return -1;
	}
	int nTick = 0;
	for (;;)
	{
		if (!cap.isOpened())
		{
			continue;
		}
		Mat frame;
		nTick = getTickCount();
		cap >> frame;  // get a new frame from camera  
		if (frame.data == NULL)
		{
			continue;
		}
		cvtColor(frame, edges, CV_BGR2BGRA);
		
		detectAndDisplay(edges);


		if (waitKey(30) >= 0) break;
	}
	return 0;
}
你好,我的程序是这样的,请问要加在哪里呢?
lx624909677 2015-10-16
  • 打赏
  • 举报
回复
假设Mat src里是放着一张有人脸的图片,人脸区域你已经知道了,那么人脸可以从src中这样截取Mat temp = src(Rect(x,y,width,height));其中Rect里面的四个参数分别代表人脸图像的起点x,起点y,人脸区域长,人脸区域宽,之后temp里就是你的人脸了!

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧