MFC編個對話方塊,能夠實時顯示攝像頭捕捉的鏡頭
現在在vc上採集視訊常用的方法有三:vfw,directshow,opencv
你是要進行影象處理的話推薦opencv(具體參考:於仕琪,opencv教程基礎篇中的例3-6,稍作修改,估計就能用於你的工程)
下面貼出我自己編的一個小工程:如有疑問,E-mail:[email protected]
進行opencv的預備操作你要看那本書和逛opencv中文網
如有問題可以和我討論(我也是菜鳥,剛為解決了這個問題竊喜不已)。
1.新建mfc對話方塊工程,在其中新增一個picture控制元件,除了ID以外什麼都不用改
2.在對話方塊標頭檔案(沒有Dlg那個)中新增(最好是在“#include "resource.h" // main symbols之後”):
#include "cxcore.h"
#include "cvcam.h"
#include "windows.h"
#include "cv.h"
#include "highgui.h"
3.在工程-》設定-》選擇所有配置-》link(連線)-》物件/庫模組-》中新增:
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib
4.在需要觸發攝像頭顯示的地方新增:
void CVideomfcDlg::OnButton1()
{
// TODO: Add your control notification handler code here
int ncams = cvcamGetCamerasCount( );//返回可以訪問的攝像頭數目
HWND MyWin=::GetDlgItem(m_hWnd,IDC_VIDEO); //獲得控制元件控制代碼(IDC_VIDEO就是圖片控制元件)
cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE); //選擇第一個攝像頭
int width=240;
int height=240;
cvcamSetProperty(0,CVCAM_PROP_WINDOW, &MyWin); // Selects a window for
cvcamSetProperty(0,CVCAM_RNDWIDTH, &width);
cvcamSetProperty(0,CVCAM_RNDHEIGHT, &height);
cvcamSetProperty(0, CVCAM_PROP_CALLBACK, callback1);
//回撥函式將處理每一幀
cvcamInit( );
cvcamStart( );
}
5.改變顯示的影象序列大小,在視窗屬性設定了以後,新增如下程式碼:
int width=320; //這個就是需要顯示的視窗大小
int height=240; //根據自己需要選擇
cvcamSetProperty(0,CVCAM_RNDWIDTH, &width);
cvcamSetProperty(0,CVCAM_RNDHEIGHT, &height);
6.在對話方塊類中新增callback成員函式(注意,在新增函式的時候,一定要選擇static,不選的話你就自己鬱悶去吧,反正我是為了這個鬱悶了2個禮拜)
void CVideomfcDlg::callback1(IplImage *image)
{
IplImage* image1 = image;
int i,j;
assert (image);
//獲取當前系統時間
SYSTEMTIME st2=;
GetLocalTime(&st2);
char sss[18]=; //這個是用來儲存所要儲存的圖片名的,用的是一個笨辦法,先定義,再修改其中的陣列值。
sss[7]=st2.wHour/10+48; //獲取系統當前小時
sss[8]=st2.wHour%10+48;
sss[9]=st2.wMinute/10+48; //獲取系統當前分鐘
sss[10]=st2.wMinute%10+48;
sss[11]=st2.wSecond/10+48; //獲取系統當前秒
sss[12]=st2.wSecond%10+48;
cvSaveImage(sss,image1); //使用系統當前時間為名稱(XXXXXX.jpg)儲存圖片
}
ps:你還需要在c盤根目錄下建立一個叫1的資料夾儲存圖片。
祝你成功
相關推薦
MFC編個對話方塊,能夠實時顯示攝像頭捕捉的鏡頭, 點選確定,儲存當前影象。
現在在vc上採集視訊常用的方法有三:vfw,directshow,opencv 你是要進行影象處理的話推薦opencv(具體參考:於仕琪,opencv教程基礎篇中的例3-6,稍作修改,估計就能用於你的工程) 下面貼出我自己編的一個小工程:如有疑問,E-mail:[email protected
MFC編個對話方塊,能夠實時顯示攝像頭捕捉的鏡頭
現在在vc上採集視訊常用的方法有三:vfw,directshow,opencv 你是要進行影象處理的話推薦opencv(具體參考:於仕琪,opencv教程基礎篇中的例3-6,稍作修改,估計就能用於你的工程) 下面貼出我自己編的一個小工程:如有疑問,E-mail:[email protected]
MFC開啟檔案對話方塊,選擇多個檔案
size_t index; CString cstrsucstring; CFileDialog filedlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMUL
Qt 關於彈出對話方塊,實現居中顯示!
本人實現的是 QFrame 居中! 因為要實現QFrame 彈出居中顯示。。 在QFrame->show之前實現move,但是這樣是取不到QFrame真實的大小! 在QFrame->show之後實現move,這時move就會出現閃屏的現象發生。 用resi
MFC如何拷貝資源(對話方塊,工具欄等)
MFC的資源機制是兩個檔案的配合,xxx.rc(xxx為專案名稱)檔案和resource.h檔案的配合,res.rc以指令碼的形式描述了資源的形式,如***對話方塊大小,ID,有什麼按鈕,按鈕的ID等等 如“關於”對話方塊在rc檔案內的描述(怎麼開啟,找到rc檔案,資源管
MFC軟體歡迎介面(基於對話方塊,VS2013)
Step1:首先你需要一張BMP格式的圖片,這個工作可以在Photoshop中完成。Step2:然後我們新建一個mfc工程檔案(基於對話方塊的)Step3:進入類嚮導新增類,你也可以自己命名Step4:插入BMP圖片Step5:mySplash類標頭檔案程式碼編輯mySpla
MFC 下檔案對話方塊選擇多個檔案
在檔案對話方塊下,選擇多個檔案,並且得到檔名,程式碼如下: CFileDialog Dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_ALLO
MFC中兩個對話方塊之間資料傳遞
這裡有兩種情況, 第一種情況是: (在一個基於單文件的應用程式中,新建了兩個對話方塊A和B,並且用兩個獨立的類和他們關聯) 對話方塊A中有一個編輯框, 按下A中的一個按鈕a後彈出對話方塊B, B中也有一個編輯框b, 在B中輸入資料 點選確定(ID0K)後 ,b中的資料能
MFC建立,銷燬,開啟模式對話方塊,關閉模式對話方塊等函式呼叫順序
MFC應用程式建立視窗的過程1.PreCreateWindow() 該函式是一個過載函式,在視窗被建立前,可以在該過載函式中改變建立引數 (可以設定視窗風格等等)2.PreSubclassWindow() 這也是一個過載函式,允許首先子分類一個視窗3.OnG
JavaScript操作BOM物件 - document物件; history 和 location物件 ,對話方塊,Date時間物件
getElementById返回擁有指定id的第一個物件(注意只是一個且是第一個)getElementsByName返回帶有指定名稱的物件集合getElementsBytagNam返回指定標籤的物件集合例html程式碼<div class="content" > <div cl
SQL Sever無法開啟連結對話方塊,未將物件引用設定到物件的例項。(AppIDPackage)
SQL Sever無法開啟連結對話方塊,未將物件引用設定到物件的例項。(AppIDPackage) 一般會出現這問題的原因是:安裝了VS。 一:C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\找到machine.config,把它刪除
phpstorm IDEA 雙擊Shift鍵會彈出 SearchEverywhere 對話方塊,如何取消這個功能
解決方法:一:Open lib/resources.jar/idea/PlatformActions.xml and remove or comment such line: <action id="SearchEverywhere" class="com.intel
MFC模態對話方塊和非模態對話方塊
下面是一個我的手寫的模態對話方塊和非模態對話方塊圖: 模態對話方塊是指當其顯示時,程式會暫停執行,直到關閉這個模態對話方塊後,才能繼續執行程式中其他任務。非模態對話方塊是指當其顯示時,允許轉而執行程式中其他任務,而不用關閉這個對話方塊。 模態對話方塊的建立:
純JS實現Toas對話方塊,無HTML結構
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>toast</tit
模態與非模態對話方塊 兩個對話方塊之間值的傳遞
①、模態對話方塊的建立:CDialog::DoModal 不用釋放資源 ②、非模態對話方塊的建立:CDialog::Create >: MyDialog dlg;
Qt 新增一個QFrame的對話方塊,設定按鈕的樣式表
新增一個QFrame的對話方塊 設定按鈕的樣式表 QPushButton#pdf2file { border:0px; background-image:url(:/images/btn-menu-02.png); font:16px "微軟雅黑"; colo
【MFC】基於對話方塊的視窗置底
環境:win10,vs2017 之前發過一篇視窗置底的文章,最近找到了一種新的方法,感覺效果更好一點。 思路就是,將自己程式的父視窗設為桌面,程式就會嵌入到桌面內部,便可實現置頂。 程式碼如下 將置底部分新增到OnInitDialog函式裡面: BOOL CDesktopEv
【MFC】基於對話方塊程式選單欄不更新
環境:win10,vs2017 問題描述: 為mfc對話方塊程式添加了一個托盤選單,但這個托盤選單不響應ON_UPDATE_COMMAND_UI訊息, 並且設定選單項的勾選(SetCheck)時,可以通過程式碼觀察到勾選成功,但選單欄顯示的勾選狀態依然不變。 經過幾天的百度,終於發現
MFC——模態對話方塊和非模態對話方塊
一、模態對話方塊 如果你需要做一個模態對話方塊,簡單的說就是你點一個按鈕,彈出一個對話方塊,之後你只能在彈出的對話方塊上操作的這麼一個過程。實驗的過程很簡單,跟著我做吧。 下面開始模態對話方塊實驗 在資源檢視新建一個對話方塊資源,修改其ID為IDD_DIAL
(shell練習1)zenity圖形介面之資訊對話方塊和單複選對話方塊,以及while,for迴圈的練習
涵蓋內容包括 1,shell的while迴圈 2,shell的for迴圈 3,shell關於字串的擷取(精華之處) 4,shell的選擇分支語句if 5,zenity資訊對話方塊 6,zenity單選對話方塊 7,zenity複選對話方塊 8,shell不