日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

            歡迎訪問 生活随笔!

            生活随笔

            當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

            编程问答

            OpenCv调用摄像头拍照代码

            發(fā)布時間:2023/12/15 编程问答 20 豆豆
            生活随笔 收集整理的這篇文章主要介紹了 OpenCv调用摄像头拍照代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

            近期在研究OpenCv對攝像頭的調(diào)用。現(xiàn)將代碼貼出,供大家批評指正。

            1、申明

            #include"./opencv2/opencv.hpp"#ifdef _DEBUG#pragma comment(lib,"opencv_core249d.lib") #pragma comment(lib,"opencv_highgui249d.lib")#else#pragma comment(lib,"opencv_core249.lib") #pragma comment(lib,"opencv_highgui249.lib")#endifusing namespace cv;class COpencvCameraCtrl :public CCameraBase { public:VideoCapture vc; public:COpencvCameraCtrl(void);~COpencvCameraCtrl(void);public:BOOL OpenCamera( HWND win, CString strVid, CString strPid ); //打開攝像頭BOOL PhotoPic( CString strSaveFile );void CloseCamera(); };


            2、打開攝像頭

            //打開攝像頭 BOOL COpencvCameraCtrl::OpenCamera(HWND win, CString strVid, CString strPid) {InitCameraWin( win );vid = strVid;pid = strPid;nIndex = GetCameraIndexInOs( vid, pid );if( nIndex < 0 ){return FALSE;}if( !vc.open( nIndex ) ){return FALSE;}vc.set( CV_CAP_PROP_FRAME_WIDTH, nWidth );vc.set( CV_CAP_PROP_FRAME_HEIGHT, nHight ); if( !vc.isOpened() ){bOpen = false;return FALSE;}bOpen = true; return TRUE; }


            3、關(guān)閉攝像頭

            //關(guān)閉攝像頭 void COpencvCameraCtrl::CloseCamera() {if( vc.isOpened() ){vc.release();} }

            4、拍照而且保存到本地

            //拍攝攝像頭 BOOL COpencvCameraCtrl::PhotoPic( CString strSaveFile ) {Mat frame;vc >> frame;vc >> frame;if( !frame.data ){return FALSE;}//設(shè)置圖像質(zhì)量vector<int> compression_params;compression_params.push_back( IMWRITE_JPEG_QUALITY );compression_params.push_back( 75 );imwrite( strSaveFile.GetBuffer(0), frame, compression_params );strSaveFile.ReleaseBuffer(); return TRUE; }


            須要說明的是:每次從攝像頭獲取數(shù)據(jù)到Mat,須要運行兩次

            Mat frame;vc >> frame;vc >> frame;if( !frame.data ){return FALSE;}
            假設(shè)只運行一次,會出現(xiàn)兩個問題:

            A、假設(shè)打開攝像頭馬上調(diào)用拍照保存,第一次會失敗,獲取不到數(shù)據(jù)

            B、每次拍攝保存的圖片是上一次的圖片

            總結(jié)

            以上是生活随笔為你收集整理的OpenCv调用摄像头拍照代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

            如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。