opencv 간단한 사진 프로그램 및 사진 편집 실현

3362 단어
opencv 사진 찍는 프로그램
사진을 찍는 간단한 프로그램을 실현하고 빈칸에 따라 사진을 찍으며 esc에서 종료합니다
    #include  
    #include  
    #include  
    #include  
    #include  
    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  
            #include  
            #include  
            #include  
            #include  
            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
"); return -1; }; for (int i = 1; i < 245; i++) { sprintf(fileName, "D:\\pic\\pic%d.jpg", i);// , filename 。 image = imread(fileName, 1); //imshow(filename, image); detectAndCut(image); } return 0; } void detectAndCut(Mat image) { std::vector 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); } }

좋은 웹페이지 즐겨찾기