資源簡介
《車型識別系統》是單文檔應用程序。1.首先單擊載入圖像菜單項(載入背景和前景圖像),圖像在image文件夾下面。 2.然后單擊車輛提取菜單項,依次進行圖像做差、二值化、開運算、圖像去噪、圖像填充處理。 3.再單擊輪廓提取菜單項,提取車輛輪廓。 4.最后單擊車型識別菜單項,對車輛進行識別
代碼片段和文件信息
//?CarShapeIdentify.cpp?:?定義應用程序的類行為。
//
#include?“stdafx.h“
#include?“CarShapeIdentify.h“
#include?“MainFrm.h“
#include?“CarShapeIdentifyDoc.h“
#include?“CarShapeIdentifyView.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#endif
//?CCarShapeIdentifyApp
BEGIN_MESSAGE_MAP(CCarShapeIdentifyApp?CWinApp)
ON_COMMAND(ID_APP_ABOUT?&CCarShapeIdentifyApp::OnAppAbout)
//?基于文件的標準文檔命令
ON_COMMAND(ID_FILE_NEW?&CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN?&CWinApp::OnFileOpen)
//?標準打印設置命令
ON_COMMAND(ID_FILE_PRINT_SETUP?&CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
//?CCarShapeIdentifyApp?構造
CCarShapeIdentifyApp::CCarShapeIdentifyApp()
{
//?TODO:?在此處添加構造代碼,
//?將所有重要的初始化放置在?InitInstance?中
}
//?唯一的一個?CCarShapeIdentifyApp?對象
CCarShapeIdentifyApp?theApp;
//?CCarShapeIdentifyApp?初始化
BOOL?CCarShapeIdentifyApp::InitInstance()
{
//?如果一個運行在?Windows?XP?上的應用程序清單指定要
//?使用?ComCtl32.dll?版本?6?或更高版本來啟用可視化方式,
//則需要?InitCommonControlsEx()。否則,將無法創建窗口。
INITCOMMONCONTROLSEX?InitCtrls;
InitCtrls.dwSize?=?sizeof(InitCtrls);
//?將它設置為包括所有要在應用程序中使用的
//?公共控件類。
InitCtrls.dwICC?=?ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
//?初始化?OLE?庫
if?(!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return?FALSE;
}
AfxEnableControlContainer();
//?標準初始化
//?如果未使用這些功能并希望減小
//?最終可執行文件的大小,則應移除下列
//?不需要的特定初始化例程
//?更改用于存儲設置的注冊表項
//?TODO:?應適當修改該字符串,
//?例如修改為公司或組織名
SetRegistryKey(_T(“應用程序向導生成的本地應用程序“));
LoadStdProfileSettings(4);??//?加載標準?INI?文件選項(包括?MRU)
//?注冊應用程序的文檔模板。文檔模板
//?將用作文檔、框架窗口和視圖之間的連接
CSingleDocTemplate*?pDocTemplate;
pDocTemplate?=?new?CSingleDocTemplate(
IDR_MAINframe
RUNTIME_CLASS(CCarShapeIdentifyDoc)
RUNTIME_CLASS(CMainframe)???????//?主?SDI?框架窗口
RUNTIME_CLASS(CCarShapeIdentifyView));
if?(!pDocTemplate)
return?FALSE;
AddDocTemplate(pDocTemplate);
//?分析標準外殼命令、DDE、打開文件操作的命令行
CCommandLineInfo?cmdInfo;
ParseCommandLine(cmdInfo);
//?調度在命令行中指定的命令。如果
//?用?/RegServer、/Register、/Unregserver?或?/Unregister?啟動應用程序,則返回?FALSE。
if?(!ProcessShellCommand(cmdInfo))
return?FALSE;
//?唯一的一個窗口已初始化,因此顯示它并對其進行更新
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
//?僅當具有后綴時才調用?DragAcceptFiles
//??在?SDI?應用程序中,這應在?ProcessShellCommand?之后發生
return?TRUE;
}
//?用于應用程序“關于”菜單項的?CAboutDlg?對話框
class?CAboutDlg?:?public?CDialog
{
public:
CAboutDlg();
//?對話框數據
enum?{?IDD?=?IDD_ABOUTBOX?};
protected:
virtual?void?DoDataExchange(CDataExchange*?pDX);????//?DDX/DDV?支持
//?實現
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg()?:?CDialog(CAboutDlg::IDD)
{
}
void?CAboutDlg::DoDataExchange(CDataExchange*?pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg?CDialog)
END_MESSAGE_MAP()
//?用于運行對話框的應用程序命令
void?CCarShapeIdentifyApp::OnAppAbout()
{
CAboutDlg?aboutDlg;
aboutDlg.DoModal();
}
//?CCarShapeIdentifyApp?消息處理程序
- 上一篇:MFC編寫的貪吃蛇源碼
- 下一篇:已編譯的GDAL gdal111
評論
共有 條評論