数字图像处理纸牌识别课程设计

上传人:第*** 文档编号:31144062 上传时间:2018-02-05 格式:DOC 页数:18 大小:605KB
返回 下载 相关 举报
数字图像处理纸牌识别课程设计_第1页
第1页 / 共18页
数字图像处理纸牌识别课程设计_第2页
第2页 / 共18页
数字图像处理纸牌识别课程设计_第3页
第3页 / 共18页
数字图像处理纸牌识别课程设计_第4页
第4页 / 共18页
数字图像处理纸牌识别课程设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《数字图像处理纸牌识别课程设计》由会员分享,可在线阅读,更多相关《数字图像处理纸牌识别课程设计(18页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计课程名称_数字图像处理_题目名称_纸牌识别_学生学院_ _专业班级_ _学 号_ _学生姓名_ _ _指导教师_ _曹江中_一、设计题目(1) 、在 VC环境下实现打开、显示一幅纸牌图(设计资料中有纸牌图) 。(2) 、将提供的几幅图片中的纸牌进行分类和识别,要求:a、判断出是那种类型(共四类:红桃,梅花、黑桃、方片) ; b、检测出点数(1、210) ;c:将上述检测的结果输出。二、设计目的通过设计,以 C+为工具,实现数字图像处理。会用数字图像处理知识对图像进行增强,如全局阈值,对图像进行旋转,边缘检测,对图像进行平移,截取图像特征并会用简单的模板匹配方法匹配判断图片内容。学

2、会使用 FMC。三设计内容。(1) 基本思想为:对图片进行中值滤波去除噪声,对图像进行全局阈值处理,用锐化模板检测,纸牌边缘,左方开始测量每个点当碰到纸牌边缘时灰度为 255,此时记下像素距离,从而对得到纸牌水平位置,同理得图片竖直距离,对图片进行平移,并截取左上角的特征,对特征进行基本处理,如二值化。逐一加载模板,进行匹配,匹配原理为特征于模板相同像素的个数,如个数很高则匹配成功,从而识别纸牌。(2)在下建立 FMC 平台。使用 DIB 类处理 bmp 格式文件。工程名为 pokeridentyfy。CPokeridentyfyview.中包的 DIB 类有CDIB m_dib;CDIB m

3、id_boader;CDIB boaer_crectCDIB cutmask;CDIB forcut;CDIB masknumber;CDIB masktype;用于存放,处理和显示图片。制作菜单每个对于图像处理功能,一个按键调用一个处理函数,也可一个按键调用多个处理函数。菜单及其功能如下图打开图像的代码为功能为大开所处理图像:void CPokeridentifyView:OnOpenimage() / TODO: Add your command handler code herestatic char szFilter=BMP 文件(*.bmp)|*.bmp|; /定义过滤文件的类型CF

4、ileDialog dlg(TRUE,bmp,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);/定义文件对话框对象CString filename;int ret=dlg.DoModal(); /运行打开文件对方框if(ret=IDOK)filename=dlg.GetFileName(); /获取所选择图像的路径m_dib.LoadFromFile(filename); /加载图像if(!m_dib.m_bLoaded) /判断是否加载图像成功AfxMessageBox(图像打不开);return;mid_boader.LoadFrom

5、File(filename); /加载图像if(!mid_boader.m_bLoaded) /判断是否加载图像成功AfxMessageBox(图像打不开);return;boaer_crect.LoadFromFile(filename); /加载图像if(!boaer_crect.m_bLoaded) /判断是否加载图像成功AfxMessageBox(图像打不开);return;cutmask.LoadFromFile(TTcut.bmp); /加载图像if(!cutmask.m_bLoaded) /判断是否加载图像成功AfxMessageBox(图像打不开);return;forcut.

6、LoadFromFile(filename); /加载图像if(!forcut.m_bLoaded) /判断是否加载图像成功AfxMessageBox(图像打不开);return;masknumber.LoadFromFile(1.bmp); /加载图像if(!masknumber.m_bLoaded) /判断是否加载图像成功 masktypeAfxMessageBox(图像打不开);return;masktype.LoadFromFile(111.bmp); /加载图像if(!masktype.m_bLoaded) /判断是否加载图像成功AfxMessageBox(图像打不开);return

7、; 打开一图片后为:中值滤波的代码为:void CPokeridentifyView:OnMidiamaskImage() / TODO: Add your command handler code hereif(!m_dib.m_bLoaded) AfxMessageBox(图像还打开,请先打开图像!);return;/获取图像宽和高int nw=m_dib.GetDIBWidth();int nh=m_dib.GetDIBHeight();int i,j;BYTE * ptemp=(BYTE *) new BYTEnw*nh;memset(ptemp,0,nw*nh);double mid

8、9;for(j=3/2;j255)result=255;if(resultthrnew)m_dib.m_pdataj*nw+i=255;elsem_dib.m_pdataj*nw+i=0;/将修改的 m_pdata 的数据赋值给 m_pDIBData,以显示修改的结果m_dib.UpdateData();memcpy(mid_boader.m_pdata,m_dib.m_pdata,nw*nh);mid_boader.UpdateData(); /刷新屏幕Invalidate(); 结果为:对图像进行边缘检测的代码为:void CPokeridentifyView:OnFindborderIm

9、age() / TODO: Add your command handler code hereif(!m_dib.m_bLoaded) AfxMessageBox(图像还打开,请先打开图像!);return;/获取图像宽和高int nw=m_dib.GetDIBWidth();int nh=m_dib.GetDIBHeight();int i,j;BYTE * ptemp=(BYTE *) new BYTEnw*nh;memset(ptemp,0,nw*nh);double mask33=-1,-1,-1,-1,8,-1,-1,-1,-1;for(j=3/2;j255)result=255;

10、if(result0;j-) if(m_dib.m_pdataj*nw+nwmovek!=0) nwmlengthk=nh-j;break;for(i=0;i0&h0&k0&h0&k0&h0&kthrnew)ptempj*nw+i=255;elseptempj*nw+i=0;memcpy(cutmask.m_pdata,ptemp,nw*nh);cutmask.UpdateData();Invalidate();/识别int cardnumber;float nuberthr=0.9;float typethr=0.92;CString filename;/*/数字识别for(t=0;tthr

11、new)maskptempj*nw2+i=255;elsemaskptempj*nw2+i=0;memcpy(masknumber.m_pdata,maskptemp,nw2*nh2);masknumber.UpdateData();Invalidate();delete maskptemp;/*/int count;int flag=0;for(h=0;hnuberthr) cardnumber=t;flag=1;break;if(flag=1)break;/检测花型 int cardtype;/*/ double type4;for(t=0;tthrnew)typeptempj*nw3+i

12、=255;elsetypeptempj*nw3+i=0; memcpy(masktype.m_pdata,typeptemp,nw3*nh3);masktype.UpdateData();Invalidate();delete typeptemp;int count;double cmp535;for(h=0;htypet)typet=cmpkh; cardtype=0;double tmepp=type0;for(i=0;itmepp) tmepp=typei;cardtype=i;/检测结果显示 略结果为:四、实验分析与总结由于图片的位置可能是斜的,所以需要对图片进行旋转;可以再以个函数内调用多个以上函数依次完成上面操作。测量距离的方法为在水平与竖直均匀分布的 7 个位置上测量,由于噪声所以需要进行中值滤波。五、心得体会由于编程上的问题,编译连接时老实错误,有的图片由于运行是程序出现不明错误而为能读取。在测量上由于只用了 7 个点所以有时会有较大误差,此时可再图片预处理上多进行几步操作,而不能一键检测。在匹配上由于用了图片相减的方法,误差较大,对于数只可以准确检测出来,但由于花型,过小导致误差较大,有时不能检测出来,需要改进。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号