基于数字图像的矩形芯片定位方法研究与实现
第五章 小结与感受
5.1 VC++编程感受
通过做毕设这几个月对VC的学习,对windows编程逐步熟悉起来,同时也认识到学习就是一个循序渐进的过程,所以,坚持最终要,只要坚持住了,就会有收获,一点一点的积累就好,时间也是很重要的,没有实践,只是不会从理论过渡到一个应用的过程,没有实际的操作,就不可能把知识掌握牢。
在没有熟练C、C++及编程思想前,一定不要接触VC的图形界面编程和MFC类库,否则你就会对VC望而却步的。由于毕业设计的需要我必须从头学VC界面编程和使用MFC类库,当然之前C++是必须要有一定基础的,这样才能学起来不算太难。
现在毕业设计已接近尾声,我总结了自己编程方面的感受。我认为首先在有了一定的编程基础后,看别人的程序,尤其是好程序,是非常有益的,其帮助也会很大。不过在这同时你一定要动手去编,不然只能算是你看明白了或者“懂”了,而不能说你会了、“掌握”了,这之间有很大的差别。当然,我并不否认读程序,其实“看别人的”和“自己写 ”几乎同等重要。有时我觉得总写一些程序,似乎没什么新东西,原来很久没看新东西了,看一看,似乎会有点发现,新的或者原来问题的解决办法。其实学习就是这样:看看,记记,然后就掌握了。有时看别人一个程序,能解决自己长期的困惑。
通过近几个月的学习VC这个工具,对它的熟悉也不断提高,对它的方便之处深有体会,在这个过程中,启发出了不少的想法,也对大学中学习到的知识或多或少的进行了复习,也不乏是个好的学习的机会。VC的核心就是MFC,MFC是个C++类库,就像结构化程序设计时代的C语言函数库一样 ,给程序员提供了丰富的编程接口,简化了程序的设计。 而MFC就是直接把WINDOWS的C语言编程接口API函数用C++的类封装而成! 这样既实现了面向对象的编程思想,又直接使用了WINDOWS的原始编程接口,代码的效率是 最高的 1.Window是由许多DLL搭起来的系统的总称,开发Window程序就是如何调用这些DLL,对于C程序员,它提供了.h/.lib,这些东西和一些文档就构成SDK,DDK。他们在任何支持DLL调用的开发环境中都可以使用(即函数指针)。
2.通常SDK指与Window核心调用有关的,但并不是专用名称。也用于其他地方VC只是一个编程工具,就如BC、BCB、Delphi一样,其实对于编程最根本的就是三个方面,语言、开发包、操作系统API,他们三个方面应该说是相对比较独立的。VC是MS开发的,所以针对的是windows API,你可以不会C++,也可以在VC下用C语言写出优秀的程序,当然如果你比较熟练C++,并且熟悉开发包MFC的话,工作可能要轻松不少。所以在我看来,学习的过程
22
基于数字图像的矩形芯片定位方法研究与实现
可以是这样的,1、先学习C或C++,在windows的console环境下编写不太深入涉及API的程序;2、在基本上掌握了语法之后,开始接触简单的系统API,学习Windows的编程原理和机制;3、在可以编写简单的菜单程序,可以简单地在WM_PAINT下操作GDI函数后,开始学习MFC,可以从Step tourist学起,看MFC的源代码,理解几个关键的宏的定义与实现,特别是MESSAGE MAP。在学习的过程中为了给自己增加点挑战,尽量不要使用resource edit,试着自己编码实现控件的创建,消息的响应。再就是看自己的造化了,动手做一些小工具,特别是自己平常需要的,对自己的提高也应该是很有帮助。
5.2 本芯片定位方法的意义
本课题的重点是熟练掌握visual c++编程工具,会在vc6.0的编程环境下实现界面设计,及图像的读入及识别,掌握数字图像处理的基本方法。
基于数字图像的矩形芯片的定位研究内容有两大块。第一块主要是研究并实现边缘检测算法;第二块主要是研究并实现矩形芯片中心的计算算法。该课题主要通过对芯片在电路板上的扫描图像,识别图像的外观、形态及坐标,通过对矩形芯片的边缘检测和中心坐标计算来实现芯片放置在电路板上的精确程度,从而达到芯片正确焊接的目的。
5.3 本芯片定位方法的优点
本芯片在定位时所用的边缘检测算法对矩形的特定形状有很大的优点,只要确定一条直线就能确定整个矩形的一个边缘,而且得到矩形的四条边所在的直线后,就能很容易的求出矩形的中心坐标。
由于对矩形芯片进行边缘检测和轮廓提取时需要求得中心坐标,而重心坐标的计算需要知道边缘直线的具体形式,因此必须要求矩形的边是封闭且是标准直线形的,所以以往教材书上所设计出来的算法如Roberts算子、Prewitt算子、Sobel算子检测,以及拉普拉斯算子有它的经典之处,仅仅是不适合这样的矩形边缘检测而已。
5.4 本研究有待改进的地方
本课题虽然实现了矩形的定位,但在边缘检测时还是有一定的误差,在边缘扫描时设定阈值的方法上还需进一步的改进。本次毕业设计所使用的设定阈值的方法就是简单的试验,通过不断试验求出离边缘较接近的灰度和,但有一定得误差,需要以后进行改进。 通过这次毕业设计使得我对图像识别这项技术了有了一些了解,而我做的毕业设计虽然说是完成了任务书中的目的,但是离实际的应用还有很远的差距。在此,我仅仅是在这项技术中出了一些微不足道的力量。
23
基于数字图像的矩形芯片定位方法研究与实现
结束语
24
基于数字图像的矩形芯片定位方法研究与实现
参考文献
[1] 何斌.Visual C++数字图像处理[M].北京:人民邮电出版社,2002年 [2] 陈纯.计算机图像处理技术与算法[M].北京:清华大学出版社,2003年 [3] 杨淑莹.VC++图像处理程序设计[M].北京:清华大学出版社,2004年
[4] 求是科技编著。Visual C++数字图像处理典型算法及实现[M].北京:人民邮电出版社
2006 [5] 阮秋琦编著。数字图像处理学[M].北京:北京电子工业出版社 2007
[6] 郎锐.数字图像处理学—Visual C++实现[M].北京:北京希望电子出版社,2002. [7] 刘榴娣,刘明奇,党长民,等.实用数字图像处理[M].北京:北京理工大学出版社,1998
[8] Sonka, M., V. Hlavac, R. Boyle: Image Processing, Analysis, and Machine Vision,
2d edition[D], PWS Publ. at Brooks-Cole Publ. Co, ITP, Pacific Grove, CA, 1998 [9]Dimov, D.T., 2001. Using an Exact Performance of Hough Transform for Image Text Segmentation[C] //Proceedings ICIP’2001, IEEE International Conference on Image Processing, Oct. 7-10, 2001, Thessaloniki, Greece, Vol.I, pp. 778-781. [10]Rosenfeld A,Kak A C.数字图像处理[J].余英林,译.北京:人民邮电出版社,1982.
25