#include <cstdio>#include <highgui.h>int main(){IplImage *pImg = NULL;CvCapture *cap = cvCaptureFromCAM(0);char fileName[100];char key;int count = 0;while(1){pImg = cvQueryFrame(cap);cvFlip(pImg, NULL, 1); //水平翻轉映像,像照鏡子一樣,不想要這個效果可以去掉此句key = cvWaitKey(50);if(key == 27) break; //按ESC鍵退出程式if(key == ' ') //按空格鍵拍照{sprintf(fileName, "Picture %d.jpg", ++count); //組建檔案名cvSaveImage(fileName, pImg);cvXorS(pImg, cvScalarAll(255), pImg); //將拍到的映像反色(閃一下形成拍照效果)cvShowImage("Camera",pImg);cvWaitKey(200); //反色映像顯示ms}cvShowImage("Camera",pImg);}cvReleaseCapture(&cap);return 0;}
藉助於百度雲,我們可以很好地實現拍照雲上傳功能。
#include <stdio.h>#include <highgui.h>#include <windows.h>#include <stdlib.h>#include <time.h>#pragma warning (disable : 4996)int main(){IplImage *pImg = NULL;CvCapture *cap = cvCaptureFromCAM(0);char fileName[100];char key;time_t t;char temp[64];while(true){pImg = cvQueryFrame(cap);cvFlip(pImg, NULL, 1); //水平翻轉映像,像照鏡子一樣,不想要這個效果可以去掉此句key = cvWaitKey(50);if(key == 27){break; }if(key == ' '){t = time(NULL);strftime( temp, sizeof(temp), "%Y%m%d%H%M%S", localtime(&t));sprintf(fileName, "d:\\百度雲\\data\\%s.jpg", temp); //按日期組建檔案名printf(fileName, "d:\\百度雲\\data\\%s.jpg", temp);printf("\n");cvSaveImage(fileName, pImg);cvXorS(pImg, cvScalarAll(255), pImg); //將拍到的映像反色(閃一下形成拍照效果)cvShowImage("Camera", pImg);cvWaitKey(200); //反色映像顯示ms}cvShowImage("Camera", pImg);}cvReleaseCapture(&cap);return 0;}