📄 dlgonsaveas.cpp
字号:
// DlgOnSaveAs.cpp : implementation file
//
#include "stdafx.h"
#include "ObjectExtraction.h"
#include "DlgOnSaveAs.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgOnSaveAs dialog
CDlgOnSaveAs::CDlgOnSaveAs(CWnd* pParent /*=NULL*/)
: CDialog(CDlgOnSaveAs::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgOnSaveAs)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CDlgOnSaveAs::CDlgOnSaveAs(CvCapture* pCapture, int pos,CvVideoWriter* writer,
CString winName,CString tracbarName,CWnd* pParent /*=NULL*/)
: CDialog(CDlgOnSaveAs::IDD, pParent)
{
this->pCapture=pCapture;
this->pos=pos;
this->winName=winName;
this->tracBarName=tracbarName;
this->writer=writer;
}
void CDlgOnSaveAs::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgOnSaveAs)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgOnSaveAs, CDialog)
//{{AFX_MSG_MAP(CDlgOnSaveAs)
ON_BN_CLICKED(IDC_BUTTON_START, OnButtonStart)
ON_BN_CLICKED(IDC_BUTTON_STOP, OnButtonStop)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BUTTON_FORFRAME, OnButtonForframe)
ON_BN_CLICKED(IDC_BUTTON_LATFRAME, OnButtonLatframe)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgOnSaveAs message handlers
void CDlgOnSaveAs::OnButtonStart()
{
isStart=true;
pos=(int)cvGetCaptureProperty(pCapture,CV_CAP_PROP_POS_FRAMES)-1;
cvSetCaptureProperty(pCapture,CV_CAP_PROP_POS_FRAMES,pos);
int count=(int)cvGetCaptureProperty(pCapture,CV_CAP_PROP_FRAME_COUNT);
while(pImage=cvQueryFrame(pCapture))
{
if(!isStart)
{
break;
}
pos=(int)cvGetCaptureProperty(pCapture,CV_CAP_PROP_POS_FRAMES)-1;
cvShowImage(winName,pImage);
cvWriteFrame(writer,pImage);
cvSetTrackbarPos("image","image",pos);
if(cvWaitKey(1)>=0 || pos>=count)
{
break;
}
}
}
void CDlgOnSaveAs::OnButtonStop()
{
isStart=false;
}
void CDlgOnSaveAs::OnClose()
{
isStart=false;
CDialog::OnClose();
}
BOOL CDlgOnSaveAs::OnInitDialog()
{
CDialog::OnInitDialog();
int y = ::GetSystemMetrics(SM_CYSCREEN) ;
int x = ::GetSystemMetrics(SM_CXSCREEN) ;
int width=(int)cvGetCaptureProperty(pCapture,CV_CAP_PROP_FRAME_WIDTH);
int height=(int)cvGetCaptureProperty(pCapture,CV_CAP_PROP_FRAME_HEIGHT);
CRect rect;
rect.left=x/2-x/4+width+10;
rect.top=200;
rect.right=x/2-x/4+width+140;
rect.bottom=200+height+30;
MoveWindow(&rect);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgOnSaveAs::OnButtonForframe()
{
pos=cvGetTrackbarPos(tracBarName,winName);
pos-=1;
cvSetTrackbarPos(tracBarName,winName,pos);
cvSetCaptureProperty(pCapture,CV_CAP_PROP_POS_FRAMES,pos);
pImage=cvQueryFrame(pCapture);
cvShowImage(winName,pImage);
}
void CDlgOnSaveAs::OnButtonLatframe()
{
pos=cvGetTrackbarPos(tracBarName,winName);
pos+=1;
cvSetTrackbarPos(tracBarName,winName,pos);
cvSetCaptureProperty(pCapture,CV_CAP_PROP_POS_FRAMES,pos);
pImage=cvQueryFrame(pCapture);
cvShowImage(winName,pImage);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -