void TakePhotos()
{
CascadeClassifier cascade;//加載級聯分析器
cascade.load("haarcascade_frontalface_alt.xml");//加載訓練得到的分類器xml檔案
VideoCapture cap(0);//啟動攝像頭
Mat frame;
if (!cap.isOpened())
{
cout << "攝像頭打開失敗!" << endl;
}
char dir[200];
char key;
char filename[200];
int count = 0;
char str[20];
char *name = str;
printf("\n當攝像頭開啟時請保證好姿勢之后按下空格鍵錄入資訊(拍攝10張以上不同角度不同表情的圖片),確定");
system("pause");
printf("\n請輸入你的名字縮寫:", &str);
scanf("%s", str);
sprintf(dir,"D:\\vs2013priactice\\FAce_dect\\Face_dect\\pic\\%s",str);//寫入創建檔案夾位置和名字
_mkdir(dir);//在指定目錄下創建檔案夾
namedWindow("【視頻】", 1);
namedWindow("【圖片】", 1);
while (1)
{
key = waitKey(50);
cap >> frame;
imshow("【視頻】", frame);
if (key == 27)
break;//按ESC鍵退出程式
if (key == 32)//按空格鍵進行拍照 32是空格鍵對應的ascll碼
{
std::vector<Rect> faces;//定義了faces物件是一個RECT陣列
Mat frame_gray;
cvtColor(frame, frame_gray, COLOR_BGR2GRAY);//影像灰度處理
cascade.detectMultiScale(frame_gray, faces, 1.1, 4, 0, Size(100, 100), Size(500, 500));
for (size_t i = 0; i < faces.size(); i++)
{
rectangle(frame, faces[i], Scalar(255, 0, 0), 2, 8, 0);//紅色的矩形框
}
Mat faceROI = frame_gray(faces[0]);//感興趣的區域ROI
Mat myFace;//建立一個自己的臉存盤
resize(faceROI, myFace, Size(92, 112));//存盤為92*112 拍照時候請保證好姿勢,因為圖片太大會造成錯誤
sprintf(filename, "%s%d.jpg",dir, ++count);
printf("11111111");
imwrite(filename, myFace);//圖片保存到本工程目錄中
imshow("【圖片】", myFace);
}
}
destroyAllWindows();
printf("資訊錄入成功");
}
//////這是小弟的代碼,
printf("\n請輸入你的名字縮寫:", &str);
scanf("%s", str);
sprintf(dir,"D:\\vs2013priactice\\FAce_dect\\Face_dect\\pic\\%s",str);//寫入創建檔案夾位置和名字
_mkdir(dir);//在指定目錄下創建檔案夾
這一點已經創建了檔案夾
接下來想把下面拍照得到的圖片保存在這個檔案夾中
Mat faceROI = frame_gray(faces[0]);//感興趣的區域ROI
Mat myFace;//建立一個自己的臉存盤
resize(faceROI, myFace, Size(92, 112));//存盤為92*112 拍照時候請保證好姿勢,因為圖片太大會造成錯誤
sprintf(filename, "%s%d.jpg",dir, ++count);
printf("11111111");
imwrite(filename, myFace);//圖片保存到本工程目錄中
imshow("【圖片】", myFace);
}
這個檔案夾是根據你輸入的時候定的
也就是說你一個人輸入了自己的名字創建了檔案夾之后用此程式拍的的照片就要存盤在此檔案夾下,實作這樣的功能就行
謝謝各位i大佬們的幫忙了.
uj5u.com熱心網友回復:
sprintf(filename, "%s%d.jpg",dir, ++count);輸出filename看看是否有效的路徑名字,檔案名和目錄之間是否有分隔符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52011.html
標籤:基礎類
上一篇:怪盜基德生氣了
下一篇:C++爬蟲崩潰問題
