資源簡介
VS2010環境下利用大華網絡相機實現對五線譜音符的圖像自動識別并播放

代碼片段和文件信息
//?StaffAutoPlayDlg.cpp?:?實現文件
//
#include?“stdafx.h“
#include?“StaffAutoPlay.h“
#include?“StaffAutoPlayDlg.h“
#include?“afxdialogex.h“
#include?“opencv2\imgproc\imgproc.hpp“
#include?
#include?
#include?
#include?“ShortMsg.h“
#include?“midi.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#endif
using?namespace?std;
using?namespace?cv;
//?CStaffAutoPlayDlg?對話框
CStaffAutoPlayDlg?*?pVideoDlg;
CWinThread?*pCaptureImageThread*pProcessImageThread;
CvRect?QuarterRectEighthRect;
CPoint?BeginPt[10]EndPt[10]Bound1BPt[10]Bound1EPt[10]Bound2BPt[10]Bound2EPt[10];
CRect?DrawRect;
BOOL?gl_bCaptureRun;
HANDLE?gl_hEvent;??//?視頻采集線程與視頻處理線程的同步信號
float?Deta[500];
CPoint?Pt8[500];
CStaffAutoPlayDlg::CStaffAutoPlayDlg(CWnd*?pParent?/*=NULL*/)
:?CDialogEx(CStaffAutoPlayDlg::IDD?pParent)
{
m_hIcon?=?AfxGetApp()->LoadIcon(IDR_MAINframe);
nChannelID=0;
m_iThresHold?=?0;
m_LowNote=36;
bStart=FALSE;
bRgn=FALSE;
bQuarterTemplate=FALSE;
bEighthTemplate=FALSE;
bClickFlag=FALSE;
bROI=FALSE;
bSnap=FALSE;
bWaitFlag=TRUE;
bTrigger=FALSE;
USB5538DevicePhysID=0;
bCapFlag=TRUE;
bImage_eighth=FALSE;
bImage_quarter=FALSE;
m_bDebug=0;
m_LoginID=0;
}
CStaffAutoPlayDlg::~CStaffAutoPlayDlg()
{
if(m_OutDevice.IsOpen())
{
m_OutDevice.Close();
}
}
void?CStaffAutoPlayDlg::DoDataExchange(CDataExchange*?pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX?IDC_SLIDER_GRAYTHRESHOLD?m_cSliderThresHold);
DDX_Slider(pDX?IDC_SLIDER_GRAYTHRESHOLD?m_iThresHold);
DDX_Control(pDX?IDC_SLIDER_WHITETHRESHOLD?m_cSliderWhiteThresHold);
DDX_Control(pDX?IDC_SLIDER_AREATHRESHOLD?m_cSliderAreaThresHold);
}
BEGIN_MESSAGE_MAP(CStaffAutoPlayDlg?CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_MESSAGE(MYWM_NOTIFYICONOnMywmNotifyicon)
ON_BN_CLICKED(IDC_DETECT?OnBnClickedDetect)
ON_BN_CLICKED(IDC_SNAP?OnBnClickedSnap)
ON_WM_HSCROLL()
ON_WM_LBUTTONDOWN()
ON_BN_CLICKED(IDC_QUARTERTEMPLATE?OnBnClickedQuartertemplate)
ON_BN_CLICKED(IDC_EIGHTHTEMPLATE?OnBnClickedEighthtemplate)
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_BN_CLICKED(IDC_SELECTROIOnBnClickedSelectroi)
ON_BN_CLICKED(IDC_ROIDISPLAY?OnBnClickedRoidisplay)
ON_WM_TIMER()
ON_WM_SIZE()
ON_COMMAND(ID_EXIT?&CStaffAutoPlayDlg::OnExit)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_SAVEBMP?&CStaffAutoPlayDlg::OnBnClickedSavebmp)
// ON_BN_CLICKED(IDC_BUTTON1?&CStaffAutoPlayDlg::OnBnClickedButton1)
END_MESSAGE_MAP()
//?CStaffAutoPlayDlg?消息處理程序
void?CALLBACK?SnapPicRet(LLONG?ILoginID?BYTE?*pBuf?UINT?RevLen?UINT?EncodeType?DWORD?CmdSerial?LDWORD?dwUser)
{
CStaffAutoPlayDlg?*pThis?=?(CStaffAutoPlayDlg*)dwUser;
int?Count;
do
{
Count=0;
}
while?(WaitForSingleobject(gl_hEvent?50)?!=?WAIT_object_0);
TRACE(“Capture\r\n“);
pThis->bCapFlag=TRUE;
pThis->UnCompressJpeg(pBufRevLen);
}
void?CStaffAutoPlayDlg::UnCompressJpeg(BYTE?*JpgData?int?JpgLen)
{
JPEG_CORE_PRO
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????59152??2018-02-23?11:03??音符圖像識別播放\StaffAutoPlayDlg.cpp
?????文件???????4279??2018-02-22?11:14??音符圖像識別播放\StaffAutoPlayDlg.h
?????目錄??????????0??2018-11-27?10:06??音符圖像識別播放
-----------?---------??----------?-----??----
????????????????63431????????????????????3
- 上一篇:opengl光照、紋理映射和鍵盤控制
- 下一篇:青鳥租房網系統
評論
共有 條評論