我們來看下效果
原圖:效果:
原理其實很簡單:
採用一張聖誕帽的png影象作為素材,
利用png影象背景是透明的,貼在背景上就是戴帽子的效果了。
人臉檢測的目的主要是為了確定貼帽子的位置,類似ps中自由變換的功能,檢測到人臉中間的位置,resize聖誕帽子和人臉大小匹配,確定位置,貼上去,ok!
// getheader.cpp : 定義控制台應用程式的入口點。下面是攝像頭實時戴帽子,改下主函式就好了://#include "stdafx.h"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include #include using namespace std;
using namespace cv;
#pragma comment(lib,"opencv_core2410d.lib")
#pragma comment(lib,"opencv_highgui2410d.lib")
#pragma comment(lib,"opencv_objdetect2410d.lib")
#pragma comment(lib,"opencv_imgproc2410d.lib")
/** function headers */
void detectanddisplay( mat frame );
/** global variables */
//-- note, either copy these two files from opencv/data/haarscascades to your current folder, or change these locations
string face_cascade_name = "d:\\program files\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml";
string eyes_cascade_name = "d:\\program files\\opencv\\sources\\data\\haarcascades\\haarcascade_eye_tree_eyeglasses.xml";
cascadeclassifier face_cascade;
cascadeclassifier eyes_cascade;
string window_name = "capture - face detection";
rng rng(12345);
const int frame_width = 1280;
const int frame_height = 240;
/*** @function main
*/int main( void )
; if( !eyes_cascade.load( eyes_cascade_name ) );
frame = imread("19.jpg");//背景
}
int main( void )我的系統的是win10 64位的系統,之前攝像頭出來都是黑的,發現需要用vs2010配置一下x64版本方可使用,查了半天還是自己之前寫的部落格靠譜:; if( !eyes_cascade.load( eyes_cascade_name ) );
// frame = imread("19.jpg");//背景
videocapture cap(0); //開啟預設的攝像頭號
if(!cap.isopened()) //檢測是否開啟成功
return -1;
mat edges;
//namedwindow("edges",1);
for(;;)
//攝像頭會在videocapture的析構函式中釋放
waitkey(0);
return 0;
}
就是按照win7 x64來配置,完美執行
效果:
我除錯好的工程:
點選開啟鏈結
基於OpenCV的簡單的人臉檢測
這個是在數字影象處理課程裡面的乙個小實踐內容。參考網上已有 重新配置編譯,效果不錯。人臉識別的庫使用的是haarcascade frontalface檔案,包含在opencv當中的。關鍵部分 如下 本原始碼只為學習交流之用 typersever from gzhu static cvmemstora...
基於opencv3的人臉檢測
目前opencv3中已經有人臉檢測的類了,只要呼叫函式庫的類就行 該程式需要兩個xml檔案,分別是haarcascade frontalface alt.xml和haarcascade eye tree eyeglasses.xml,它們分別是已經通過了大量訓練且能檢測出人臉和眼睛了,只要呼叫即可。...
Python基於OpenCV的人臉檢測並儲存
import cv2cv2.cascadeclassifier cv2.data.haarcascades haarcascade frontalface default.xml coding utf 8 import opencv的庫 import cv2 import os,math,opera...