2010年3月21日星期日

开源的车牌识别工程

与大家共享,网上找到的C#写的开源车牌识别工程。
建在google code
地址是 : http://code.google.com/p/lprbuaa/
给出的工程简介:

LicensePlateRecognition

base on GraphicsEngine.

 GraphicsEngine.是:

“一个简单的数字图像处理引擎,提供各种基本图像处理算法、连通域分析和内存管理。API为两层结构,并在不断完善中。来自北京航空航天大学机械工程及自动化学院。张以成”


截图:
lprbuaa.png

2010年3月15日星期一

低效能人士的七个坏习惯-褪墨

来自"褪墨"的最新文章,

低效能人士的七个坏习惯

Sun, 14 Mar 2010 12:44:00 +0800

是否真有幸福并非取决于天性,而是取决于人的习惯褪墨上曾分享过哈佛大学企业管理硕士,杨百翰大学博士史蒂芬・柯维(Stephen R.Covey)的《高效能人士的七个习惯》上几篇文章:《学会积极主动》和《要是第一》,而本文将列举七个低效能人士的坏习惯。欢迎大家参加褪墨号召的《一个月培养一个好习惯》活动!

  • 缺席

也许你曾经听过伍迪·艾伦所说的这句话:"百分之八十的成功来自于出席。"更多的出席——这是在生活中保证更多成功要做的最重要也是最简单的事情之一。例如,如果想要改善自己的健康状况,最有效的事情就是每天按时出现在健身房里,无论是天气是多么不好、你是多么不想出门、你是多么的繁忙,只要你能坚持在积极性不高的时候能出席健身房,你就会开始改善健康,而不是每天躺在沙发上幻想自己的身体忽然变得更健康了。如果你想提高写作水平或绘画水平,你就要经常练习。如果你想交更多的朋友,就需要出席更多的活动。学会出席,积极主动的参与,这将使你的生活受益匪浅。

  • 拖拖拉拉

我最喜欢的三种摆脱拖拉情况的方法,列举如下:

  1. 在一天的最开始就完成那些最重要的工作。早上良好的开始会让你一天都保持高昂的情绪和积极的动力。这通常会使你这一天都十分高效。
  2. 一项的一项去完成。想想,你如何吃掉一头大象呢?不要打算一口吃成胖子,这会使你感到过多负担以至于产生拖延的念头。把一项工作分为若干可付诸于行动的小步骤,然后仅仅关注第一步直到把它完成,接下来再继续下一步。
  3. 说服自己。我发现这种向导型调整十分有效。我时常花上一段时间躺在床上反复默念"在这几天里我都会十分高效"之后,我就觉得自己又有动力,又有激情地开始工作了。

拓展阅读:防止拖延的积极步骤

  • 做无关紧要的事情

除了拖拖拉拉以外,另外一个容易陷入的不良习惯就是深陷无关紧要的事情之中。为了提高效率你也许需要某种时间管理方法。比如这套极为简单的时间管理方法,使用80/20法则。80/20法则,也就是我们通常所熟悉的帕累托法则,认为80%的收获源自20%的努力。所以为求高效,你应该将大部分精力集中在那些极少数重要的事情上。你只需按优先顺序写下这一天你需要做的三件最重要的事情,然后从头做起。即使你只能完成其中的一件事,你仍然完成了今天最重要的事情。也许你也会偏爱其他诸如GTD等方法,不过无论你如何组织工作,最关键的还是寻找那些最重要的工作,这样你就不必花费几天,几个星期甚至几个月的时间去忙于那些并不是很重要的事情。如果这些事情无关紧要,那么即使你快速的完成它们也是没有多大用处的。

拓展阅读:放置大石头的艺术:让你的效率翻倍

  • 多虑

因为多虑而使我们很少采取行动,陷于无穷的分析之中只会使虚度光阴。行动之前加以思考是没有错的,做一些调查研究,制定一个计划,探究可能存在的积极以及不利因素。但是强制性地反复思考就会成为另外一种浪费时间的做法了。在尝试之前你没有必要去从每一个角度检查每一件事情。而且你也不可以等到一个最完美的时间再去做事,因为这样的时间从来不会出现。如果你继续这样思考就只会使自己陷的越来越深,从而使采取行动变得越来越难。相反,虽然思考在一定程度上对你有所帮助,但你现在需要做的就只是停止思考,然后去做那些你应该做的事情。

  • 凡事过于消极

当你凡事都从消极方面考虑时,你的积极性就会被大大打击。你会发现到处都是问题和错误,而这些问题和错误可能是本不存在的,所以不要抓住细节不放。当你从一个消极角度看问题时,每次你都可能找出十个借口来逃避问题,因此你几乎一事无成。你向任何愿意倾听的人诉苦(也许很多人并不想听),抱怨你的工作,生活和领导有多么的差劲。其实,你的生活取决于你如何看待这个世界。对此的一个解决方法就是了解消极方面的限度,认识到你的消极思考并不是这个世界的真实写照。然后不妨尝试一些其他的角度。举例来说,你可以尝试着培养一下凡事从更为积极和乐观的角度思考的习惯,这会对你大有帮助。通过这种方式,你也许就会开始尝试这种积极性的挑战。这并不容易,然而如果你接受了这种挑战,连续7天都只从积极方面思考,ä �就会突然意识到你看问题的角度和想法是如此深刻地影响着你对世界的理解和你所得到的成果。

拓展阅读:如何打破消极思维模式

  • 固执己见,与世隔绝

我们很难去承认自己的想法不是最佳选择,因此我们通常过于执着自己的想法,变得闭目塞听,而这会让你很难取得进步。在这种情况下,即使认真思考改变人生的可能性都会变得很难。显然,解决方法之一就是打开心胸,开阔视野,从他人和自己的错误中汲取教训,从书籍等资源中获取知识。与任何事一样,这事说起来容易做起来难。正如前面所说,对此我的建议就是认识到你的知识领域毕竟是有限的,而你做事的方式也会存在不足。那么不妨就尝试一下新事物吧。 而我的另一条建议就是,阅读一下埃克哈特·托利的《新天地》,特别是有关Ego的章节。正如托利所建议的,如果你不再像Ego那样思考,你就会更加容易接受新思想,抛弃那些已经无用的旧思想。另外我想要补充说明的就是:不要迷信书本,也不要盲目追求新的信息,否则你就会成为一个沉迷于自我帮助的人。在行动中运用那些新信息和你学到的事情,然后加以尝试。

  • 持续信息过剩

信息过剩并不是说你过多的阅读,我所指的是所有输入信息的过剩。如果你让所有的信息都涌进大脑,这当然会导致难于清晰思考,因为刺激源太多了。以下就是这种习惯可能会存在的弊端:

  1. 你所接受的一些信息也许会是消极的。媒体和周围环境会因种种原因提供一种消极的信息。如果你没有根据需要对信息加以选择,也许你就会陷入消极之中,从而影响到你的所思,所感,所为。
  2. 这会使你急于追赶当今发生的事情。每时每刻都有十几件事同时发生,想要追赶上它们几乎是不可能的事情。你的生活会因此充满压力
  3. 如果你持续被信息轰炸,并且还试图将所有信息分类,那么你将很难做出决定并采取行动。就我个人而言,如果我得到过多的信息,就会造成某种形式上的瘫痪。如果你已被这种习惯所困,终日急于忙碌在一些非重要的事情上。为了可以集中精力,清晰思考并付诸行动,你就需要在吸取信息时更有选择性。当你工作时尽可能的避免那些分散注意力的事物,如关掉电话,断开网络,关上大门。久而久之,你就会发现,当你没有每隔五分钟就被打扰一次,没有机会因浏览RSS-feeds或喜爱的网站而拖延时,居然可以完成这么多的事情。我并不是建议你们停止阅读所有的博客或报纸,但是一定要清楚哪些是你真正想要阅读的,哪些只是用来打发时间的。学会拥有一扇心灵之门,关上它而去关注更为重要的事情,这样你就没有必要陷入那些来自周围环境的 ��极情绪。要知道,如果周围的所有人都在拖延或者焦急的忙于各种非重要的事情时,你会很容易被这种情绪所影响的。

原文:7 Habits of Highly Ineffective People – The Positivity Blog



如下实现,用CString时,是肯定会造成内存泄露

如下实现,用CString时,是肯定会造成内存泄露:   
  DWORD   __stdcall   ThreadProc(LPVOID   pContext)   
  {   
          CString   strTest   =   "abcd";   
          MessageBox(strTest);   
    
          ......   
    
          ExitThread(0);   
          
          return   NULL;   
  }   
    
    
     按说一般局部变量是分配在stack上的,不会内存泄漏;   
  但是这个Cstring类型的变量就特殊了,“该管理器从进程堆(在   ATL   中)或   CRT   堆(在   MFC   中)分配内存。”既然分配在堆上,那就要回收。默认是到了该变量生存期结束的时候有管理器回收,但是如果你强行         ExitThread(0);   或者exit(0),让该线程“不得好死”,自然就内存泄漏……

2010年3月4日星期四

2010年3月1日星期一

车牌识别中一种新的直接基于彩色图像的二值化简化方法[转]

转自 http://goo.gl/oSjO

车牌识别包括预处理、定位、字符分割和字符识别等几部分。在本文中,我们仅讨论预处理的二值化过程。二值化的好坏决定着车牌识别的精度。事实上,要提高车牌识别精度必须要有好的二值化方法。本文提出了一种新的直接基于彩色图像的二值化方法。

车牌识别,一直存在两种思路。一是将彩色图像灰度化,然后二值化等等;二是直接基于彩色图像。

由于直接基于彩色图像的方法大都未取得很好的效果,因此,造成灰度化、二值化成为目前车牌识别的主流。但是,采用灰度化的方法,有个根本的问题就是,灰度化是有损的。灰度化难在阈值选取。尽管没有理论证明,车牌识别的精度很难超过90%,这或许就与阈值的选取有关。

要跳出阈值选取的怪圈,我认为车牌识别就还是应该回到彩色模式上来。其实,彩色图像为什么要灰度化?其依据是彩色图像需要占用大量的处理时间。老师上课的时候是这样在讲,教科书上也是这样在写。

从广泛的意义上讲,彩色图像确实会占用大量的处理时间,但是,针对车牌识别而言,我们可以找到一种非常简单的方法。通过这种方法,彩色图像会被极大地简化,就是说可以简化到无需考虑处理时间的占用问题。

注意,我说的是简化。就是说,我们要通过简化的方法,达到通过灰度化实现二值化同样的目标,即将彩色图像直接简化成二值化图像,简化过程不使用灰度化方法,仅通过空间映射方式。这样做的好处是什么呢?它克服了灰度化的有损性,最大限度地保持了图像的原貌。传统的方法经灰度化后得到的二值化结果,已经完全丧失原有的色彩信息,而新的通过空间映射的方法,同样得到了二值化图像,但是,图像中每个像素的原色彩信息依然保留着。

直接基于彩色图像的二值化简化,其核心思想是通过:黄 =(红+绿)/ 2 ,依此将红、绿、蓝三原色构成的色彩空间映射到由黄、蓝两种颜色构成的色彩空间;映射后的色彩值有黑色、蓝色、灰色、黄色和白色五种。具体的简化过程如下:

1、建立公式:黄色 =(红色+绿色)/ 2 ,取值0..255。

2、建立公式:灰度 =(黄色+蓝色)/ 2 ,取值0..255。

3、将黄色和蓝色都大于187的视同白色。

4、将黄色和蓝色都小于153的视同黑色。

5、去除白色和黑色剩下的中间色中,如果黄色<0.9×蓝色(意味着颜色偏蓝),则需进一步进行蓝色细分;如果蓝色<0.9×黄色(意味着颜色偏黄),则需进一步进行黄色细分;否则则需进一步进行灰色细分。

6、蓝色细分:如果黄色<0.8×蓝色,说明颜色中蓝色成分明显多于黄色成分,视同蓝色;否则,如果灰度<187,视同蓝色,反之视同灰色。

7、黄色细分:如果蓝色<0.8×黄色,说明颜色中黄色成分明显多于蓝色成分,视同黄色;否则,如果灰度>153,视同黄色,反之视同灰色。

8、灰色细分:如果灰度<153,视同黑色;如果灰度>187,视同白色,否则视同灰色。

经过空间映射,现在的空间由黑色、蓝色、灰色、黄色和白色五种颜色构成。显然,这个空间仍然可以被看成是彩色空间,它包括中国车牌所需要的各种底色和字符色(红字需要再特殊处理一下),所有色彩信息都没有丢失。注意,这里有灰色,它正好解决了对“脏”车牌的识别。

进一步我们可以将黑色和蓝色统一归并为蓝色,黄色和白色统一归并为黄色。灰色可根据底色视同蓝色或黄色。这样我们就完成了直接基于彩色图像的二值化简化。

上述直接基于彩色图像的二值化简化方法,最关键的是把空间简化了,把RGB三维空间简化成YB二维,然后,继续简化成直线,再继续简化成五个值,最后简化成二值,节省了计算时间。它与其他的彩色模式的差异在哪里呢?其他的彩色模式大都没有降低维数,减少计算量,即尽管采用了彩色模式,但是最后还是要回到灰度化上面去。这是不对的。

实际应用时,参数会略有调整,测试请到 http://www.yulaohui.com/color5_2/ 。

 

欢迎访问、交流!对本博客有何建议,请
来信告知!
本博内容来源于网络,如有不当或侵犯权益,请来信告知,将及时撤除!
如引用博客内容、论文,请注明原作者!

Google一下本博客