人脸识别/人眼识别haar -- OpenCV (五)

浪尽此生 提交于 2020-08-07 19:30:36
int main(int argc, char** argv) {
	RNG rng;
	//recongine face position in rgb 
	cv::Mat temp_thin_color = cv::imread("../example/rgb[1].bmp", CV_LOAD_IMAGE_UNCHANGED);
	cv::Mat temp_thin_image_color, gray_image_color, equalize_image_color;
	temp_thin_color.convertTo(temp_thin_image_color, CV_8UC1, 1, 0);

	cv::cvtColor(temp_thin_image_color, gray_image_color, CV_RGB2GRAY);
	cv::imshow("gray_image_color", gray_image_color);

	cv::equalizeHist(gray_image_color, equalize_image_color);
	cv::imshow("equalize_image_color", equalize_image_color);

	std::vector<cv::Rect> objs;
	cv::CascadeClassifier objDetector("../haarcascades/haarcascade_frontalface_alt2.xml");
	objDetector.detectMultiScale(equalize_image_color, objs, 1.2, 2, CV_HAAR_SCALE_IMAGE, cv::Size(50, 30));
	std::vector<cv::Rect>::const_iterator it = objs.begin();
	for (; it != objs.end(); ++it) {
		/*rectangle(temp_thin_image_color, cv::Point(it->x, it->y),
			cv::Point(it->x + it->width, it->y + it->height),
			cv::Scalar(0, 255, 0), 2, CV_AA);*/

		std::cout << it->x << " " << it->y << " " << it->width << " " << it->height << std::endl;

		cv::Mat roi_image_color = gray_image_color(cv::Rect(it->x, it->y, it->width, it->height));
		cv::imshow("roi_image_color", roi_image_color);
	}

	cv::waitKey(0);
	return 0;
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!