文件名称:车牌识别程序
文件大小:12.88MB
文件格式:RAR
更新时间:2015-11-02 03:16:06
VC 车牌识别
需要注意的地方: 使用VC++6.0做开发工具, 采用简单的SDI框架结构 ,一次处理一幅位图(有兴趣的可以作成MDI) 1)位图信息的数据是从左下往右下为一行,一行一行往上排的。 2)每行像素应该是4的倍数,不足的地方用空点补齐,读的时候注意跳过冗余点。 3)主要数据都存在Doc里面,BMP的主要数据存在一个由ImgData指向的BYTE型的内存空间(根据位图的大小,动态分配的)。 4)数据读进来以后,注意向内存中贴图,以保证刷新的效率。 5)程序执行流程 应用程序生成--》打开--》CDipView的OnFileOpen 函数--》 调用CDipDoc的FileOpen 函数--》并使用myDoc->UpdateAllViews(NULL); 刷新 自动调用CDipView的OnPaint函数--》调用CDipView的OnDraw函数----一个像素点一个像素点的画 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 比较重要的地方 读BMP文件,只能打开256色 (可以是灰度) 显示和内存贴图技术 关于调色板: 调色板实际上是一个数组,4个BYTE 分别是 B,G,R,和 Reserved 每一个像素点都有一个相应的数组。 关于VC和windows 的绘图机制: 使用GDI(图形设备接口)对象,通常使用CDC 类,CPaintDC也一样(device-context)设备上下文 windows下的MFC编程机制,消息驱动,事件等待! 全局的app(应用程序对象) 注意 手工分配内存的清除 和CDC对象的删除 以释放系统的GDI资源 每一个new操作符都要对应一个delete 虽然已经弄出来了,还是希望大家好好读读源程序。 你们以后的工作: 在菜单中添加菜单项,通过ClassWizzard 生成消息响应函数(当然也可手动添加), 所有的操作应当是对 BYTE* ImgData;进行的。 在完成相应的功能后 将 isnewfile 和 isnewiamge 置为真 ,并使用myDoc->UpdateAllViews(NULL); 刷新 当然,可以更加有个性化一点,有能力的同学可以自己完成。 随着课程的进行,菜单功能逐渐丰富,最后完成基本的数字图像处理的功能,而不必最后一下完成一个大的作业。
【文件预览】:
车牌识别VC源码(1)
----DigitClass.cpp(13KB)
----SuXiaoDlg.h(1KB)
----Training.h(1KB)
----dip.dsp(5KB)
----StdAfx.cpp(205B)
----dip.plg(4KB)
----resource.h(3KB)
----Thinner.h(634B)
----char.bp(20KB)
----dipView.h(7KB)
----num.bp(12KB)
----char_num.bp(24KB)
----SXDlg.cpp(1010B)
----dip.vcproj.LENOVO-B66F6293.CHAITYGER.user(1KB)
----dipDoc.h(2KB)
----dipDoc.cpp(7KB)
----dip.h(1KB)
----dip.dsw(531B)
----dip.cpp(4KB)
----MainFrm.h(2KB)
----SuXiaoDlg.cpp(986B)
----MFM1992(42KB)
----mydata.dat(0B)
----numdata.num(3KB)
----dipView.cpp(79KB)
----dip.aps(35KB)
----Thinner.cpp(14KB)
----RecvChar.cpp(936B)
----Debug()
--------GreyDlg.sbr(0B)
--------dipView.sbr(0B)
--------MainFrm.sbr(0B)
--------dipDoc.sbr(0B)
--------dip.pdb(19KB)
--------vc90.idb(491KB)
--------BuildLog.htm(38KB)
--------dip.bsc(8.17MB)
--------dip.obj(36KB)
--------Mdlg.obj(19KB)
--------numdata.num(0B)
--------dipDoc.obj(51KB)
--------dip.res(10KB)
--------dip.pch(27.25MB)
--------GreyDlg.obj(23KB)
--------MainFrm.obj(38KB)
--------vc90.pdb(1.93MB)
--------Mdlg.sbr(0B)
--------StdAfx.obj(455KB)
--------chdata.ch(0B)
--------handata.han(0B)
--------StdAfx.sbr(3.2MB)
--------dip.sbr(0B)
--------dip.exe.intermediate.manifest(861B)
--------dipView.obj(236KB)
----Training.cpp(1KB)
----ReadMe.txt(4KB)
----StdAfx.h(1KB)
----AnnBP.cpp(11KB)
----SXDlg.h(1KB)
----MainFrm.cpp(3KB)
----AnnBP.h(3KB)
----RecvChar.h(1KB)
----dip.ncb(12.24MB)
----chdata.ch(1KB)
----CharView.cpp(1KB)
----Mdlg.cpp(928B)
----GreyDlg.h(1KB)
----说明.txt(2KB)
----CharView.h(2KB)
----dip.opt(60KB)
----res()
--------dip.rc2(395B)
--------dipDoc.ico(1KB)
--------dip.ICO(1KB)
--------MISC41.ICO(1KB)
--------Thumbs.db(7KB)
--------Toolbar.bmp(1KB)
----GreyDlg.cpp(2KB)
----handata.han(784B)
----dip.sln(871B)
----DigitClass.h(2KB)
----dip.rc(16KB)
----Mdlg.h(1KB)
----dip.suo(16KB)
----dip.vcproj(8KB)
----dip.clw(5KB)