人脸马赛克
? ?前幾天聽到一個朋友的需求說幫人臉p馬賽克有點繁瑣,所以就想用Opencv做個原理。
核心原理是很簡單的:
1.人臉識別
2.高斯模糊
CascadeClassifier cpufaceCascade;const string path = "../data/haarcascade_frontalface_alt.xml";if (!cpufaceCascade.load(path)){cout << "找不到級聯器";return -1;}Mat img = imread("../data/facetest.jpg", IMREAD_REDUCED_COLOR_8);if (img.empty()){cout << "沒有照片";return 1;}Mat imgGray;vector<Rect> faces;cpufaceCascade.detectMultiScale(img, faces, 1.1,1,5);blur(img, imgGray,Size(20,20),Point(-1,-1),4);cout << faces.size();if (faces.size() > 0){for (int i = 0; i < faces.size(); i++){if (img.channels() == 3) {for (int K = faces[i].x; K < faces[i].x + faces[i].height ; K++){for (int J = faces[i].y; J < faces[i].y+ faces[i].width; J++){img.at<Vec3b>(J, K) = imgGray.at<Vec3b>(J, K);}}}}}//獲取一張就這些保留其他全黑的圖片namedWindow("a", WINDOW_AUTOSIZE); // 創建一個窗口imshow("a", img);waitKey(0);destroyAllWindows();return 0;?
轉載于:https://www.cnblogs.com/carsonche/p/9784474.html
總結
- 上一篇: bzoj4668 冷战
- 下一篇: 转载:Django之Form组件