opencv實現(xiàn)拍照的程序
實現(xiàn)拍照的簡單程序,按空格拍照,esc退出
#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<iostream>
#include<stdio.h>
using namespace cv;
using namespace std;
int main(int argc, char* argv)
{
VideoCapture capture(0);
Mat frame;
if (!capture.isOpened())
{
return -1;
}
char filename[200];
int count = 23;
while (1)
{
char key = cv::waitKey(50);
capture.read(frame);
imshow("video", frame);
if (key == 27)break;//按ESC鍵退出程序
if (key == 32)//按空格鍵進行拍照
{
sprintf(filename, "D:\\pic\\pic%d.jpg", ++count);
imwrite(filename, frame);//圖片保存到本工程目錄中
imshow("image", frame);
}
}
return 0;
}
讀取文件夾中的圖片并將其按照尺寸進行裁剪
#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<iostream>
#include<stdio.h>
using namespace cv;
using namespace std;
String face_cascade_name = "haarcascade_frontalface_default.xml";
CascadeClassifier face_cascade; //定義人臉分類器
int i = 1;
void detectAndCut(Mat image);
int main(int argc, char* argv)
{
Mat image;
char fileName[244];
if (!face_cascade.load(face_cascade_name)){ printf("--(!)Error loading face cascade\n"); return -1; };
for (int i = 1; i < 245; i++)
{
sprintf(fileName, "D:\\pic\\pic%d.jpg", i);//用這個函數(shù)來轉(zhuǎn)換圖片名稱,存放在filename中。
image = imread(fileName, 1);
//imshow(filename, image);
detectAndCut(image);
}
return 0;
}
void detectAndCut(Mat image)
{
std::vector<Rect> faces;
Mat img_gray;
char fileOutName[244];
cvtColor(image, img_gray, COLOR_BGR2GRAY);
equalizeHist(img_gray, img_gray);
//-- Detect faces
face_cascade.detectMultiScale(img_gray, faces, 1.1, 3, CV_HAAR_DO_ROUGH_SEARCH, Size(50, 50));
for (size_t j = 0; j < faces.size(); j++)
{
Mat faceROI = image(faces[j]);
Mat MyFace;
if (faceROI.cols > 100)
{
resize(faceROI, MyFace, Size(92, 112));
sprintf(fileOutName, "D:\\MyFace\\MyFcae%d.jpg", i++);
imwrite(fileOutName, MyFace);
imshow("ii", MyFace);
}
waitKey(10);
}
}
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。