<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_GuoYong.Che</title><subtitle type="text">——车国勇</subtitle><id>http://feed.cnblogs.com/blog/u/30133/rss</id><updated>2011-10-15T01:05:38Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/30133/rss"/><entry><id>http://www.cnblogs.com/gyche/archive/2011/07/13/2105439.html</id><title type="text">Entity Framework的连接字符串纯粹就是毛线</title><summary type="text">有一种扯淡叫做毛线。 .NET的实体框架当前已经是4.1了，考虑到已经提供POCO功能，并且还支持多种数据库（这点可是Linq2Sql无法做到的），于是想试试。 不可否认，EF强大的设计能力确实很方便。但是很困惑的地方就是在Sql Server 2008下，DateTime类型在数据库中只能使用datetime2，否则运行后会报错，据说Sql Server 2005就没这个问题，当然2005中也没...</summary><published>2011-07-13T08:19:00Z</published><updated>2011-07-13T08:19:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2011/07/13/2105439.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2011/07/13/2105439.html"/><content type="html">&lt;p &gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 有一种扯淡叫做毛线。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;.NET的实体框架当前已经是4.1了，考虑到已经提供POCO功能，并且还支持多种数据库（这点可是Linq2Sql无法做到的），于是想试试。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;不可否认，EF强大的设计能力确实很方便。但是很困惑的地方就是在Sql Server 2008下，DateTime类型在数据库中只能使用datetime2，否则运行后会报错，据说Sql Server 2005就没这个问题，当然2005中也没有这种类型。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一切都很顺利，直到有天想把现有网络版的软件转换成单机版的软件，问题就来了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;原本打算是使用DB4O来进行单机数据存储，但需要实现相应的UnitOfWork和Repository，又想到EF是支持多数据库的，换成SQLCE不就行了，都是一家人，相互认识是必然的。修改下连接字符串吧，NHiberate可不就是这样的嘛！&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;于是很自信地修改了下连接字符串，没想到还真出了问题。首先系统提示连接字符串有问题，折腾了一半天，原来在设计器的edmx文件中有和当前连接的数据库类型相关的信息，还必须通过XML设计器打开该文件进行修改；修改后又出现问题，提示SQL CE中不支持datatime2类型，猜到是映射的问题，又使用XML设计器打开文件手动逐一修改，同时还发现SQL CE中支持的字符串长度还不能超过4000，所有字符串超过4000的也会提示错误。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;找到了原因，又想到系统需要同时支持单机版和网络版，为了提高系统的灵活性，索性复制了一个edmx，然后配置其为SQL CE类型的数据库才解决问题。没有想到EF居然是以这种方式支持多数据库的，真是BT啊。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;总觉得这种解决方式有问题，搜索了一下，也找到了相应的解决办法：&lt;br /&gt;&lt;/span&gt;&lt;a href="http://mosesofegypt.net/post/Multiple-database-support-with-Entity-Framework.aspx" _fcksavedurl="http://mosesofegypt.net/post/Multiple-database-support-with-Entity-Framework.aspx"&gt;&lt;span style="font-size: medium;"&gt;http://mosesofegypt.net/post/Multiple-database-support-with-Entity-Framework.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: medium;"&gt;，&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;不过还是得使用XML编辑器打开edmx文件进行手动修改，还是得添加相应的提供者类型和字段映射定义。一想到如果结构有变化我就后怕，岂不是每次都要手动重复做这番工作？这点可比NHiberate差远了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;在此终于恍然大悟，终于搞清楚EF的连接字符串为什么必须包含metadata的定义。如果要在运行时更换数据库，那么metadata的定义就必不可少，因为在其中还包含了不同数据库相关的提供者信息和字段映射信息。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;真没想到EF是以这种方式实现多数据库的支持的，原来支持和自动支持是有很大差距的。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; 唉，&lt;/span&gt;真是...... &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;不知啥时能像NHiberate一样自动支持多数据库的ORM呢？&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gyche/aggbug/2105439.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gyche/archive/2011/07/13/2105439.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gyche/archive/2010/12/26/1914652.html</id><title type="text">老调重弹：车牌识别</title><summary type="text">基于图像的车牌识别技术，是基于图像的模式识别、图像处理、人工智能的典型案例</summary><published>2010-12-26T02:42:00Z</published><updated>2010-12-26T02:42:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2010/12/26/1914652.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2010/12/26/1914652.html"/><content type="html">&lt;p &gt;最近一年来忙于研发任务，不得不放下Silverlight 3D的学习。研发中要求逐步解决车牌图像识别、重车桥数（主要用于进行超载检测）图像识别和部分矿种的图像识别。本次将介绍车牌的图像识别。&lt;/p&gt;&#xD;
&lt;p &gt;其实车牌图像识别从技术上已经比较成熟，从理论上来说无外乎就是如下几个步骤：&lt;/p&gt;&#xD;
&lt;p &gt;&lt;strong&gt;灰度化&lt;/strong&gt;：实际就是对原始车牌图片进行预处理，把彩色图片转化为黑白图片，然后对不符合指定阙值范围的灰度值进行过滤。&lt;br /&gt;　　&lt;strong&gt;车牌定位&lt;/strong&gt;：这是技术难点之一，根据我的经验，定位车牌位置对于车牌的准确识别而言实际上就成功了60%。很多车牌识别的产品都对车牌的定位预留了很多配置参数，例如截取原始图片的位置参数、车牌的长宽比例、大小等等，这些都是为了提高车牌定位的准确率。&lt;br /&gt;　　&lt;strong&gt;字符分割&lt;/strong&gt;：车牌定位后是字符分割，本人使用的识别过程是：对定位的车牌位置进行降噪处理=&amp;gt;边界模糊=&amp;gt;从右向左找出前6个封闭的图形=&amp;gt;剩余的封闭图形综合为一个图形进行汉字的识别。&lt;br /&gt;　　&lt;strong&gt;字符识别&lt;/strong&gt;：就是根据字符模板进行模板匹配，因此需预先建立相应的字符模板。基于图像进行字符识别也可配置很多参数来大大提高字符的识别率。例如限定车牌头的字符，车牌各位字符的识别优先级等等。&lt;/p&gt;&#xD;
&lt;p &gt;以下通过大车黄牌号码为例，看看车牌识别的效果。&lt;br /&gt;　　1、原始图片如下图所示：&lt;br /&gt;&#xD;
&lt;div  align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck1.jpg" width="687" height="456" /&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;br /&gt;　　2、限定车牌识别区域，本例中将裁剪掉上下左右各10%的区域： &lt;/div&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;get_image_pointer1&amp;nbsp;(FullImage,&amp;nbsp;Pointer,&amp;nbsp;Type,&amp;nbsp;Width,&amp;nbsp;Height)&lt;br /&gt;gen_rectangle1&amp;nbsp;(Rectangle,&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #800080"&gt;0.1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #800080"&gt;0.1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #800080"&gt;0.9&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #800080"&gt;0.9&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;reduce_domain&amp;nbsp;(FullImage,&amp;nbsp;Rectangle,&amp;nbsp;Image)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;p &gt;看看裁剪结果： &#xD;
&lt;div  align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck2.jpg" width="689" height="459" /&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;p &gt;3、把选中的区域灰度化，方便后续处理：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;decompose3&amp;nbsp;(Image,&amp;nbsp;Red,&amp;nbsp;Green,&amp;nbsp;Blue)&lt;br /&gt;trans_from_rgb&amp;nbsp;(Red,&amp;nbsp;Green,&amp;nbsp;Blue,&amp;nbsp;Hue,&amp;nbsp;Saturation,&amp;nbsp;Intensity,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;hsv&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;p &gt;灰度化后的效果图： &#xD;
&lt;div  align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck3.jpg" width="686" height="454" /&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;br /&gt;&lt;br /&gt;　　4、灰度阙值过滤，本例中只选中灰度值在100至255之间的区域，可根据实际情况进行相应的设置，然后进行降噪处理： &lt;/div&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;threshold&amp;nbsp;(Saturation,&amp;nbsp;HighSaturation,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;100&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;255&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;remove_noise_region&amp;nbsp;(HighSaturation,&amp;nbsp;OutputRegion,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;n_48&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;p &gt;过滤降噪后的效果，和实际的位置很接近了吧！&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;p  align="left"&gt;&lt;div  align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck4.jpg" width="687" height="453" /&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;br /&gt;&lt;br /&gt;　　5、根据预定义的车牌长宽比例等查找符合特定特征的区域： &lt;/div&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('09b66308-7829-4905-a98e-061d2686155d')"&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;connection&amp;nbsp;(OutputRegion,&amp;nbsp;ConnectedRegions1)&lt;br /&gt;closing_rectangle1&amp;nbsp;(ConnectedRegions1,&amp;nbsp;RegionClosing1,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;select_shape&amp;nbsp;(RegionClosing1,&amp;nbsp;ASelectedRegions,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;area&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;and&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;3000&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;9000&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;select_shape&amp;nbsp;(ASelectedRegions,&amp;nbsp;HSelectedRegions,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;height&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;and&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;30&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;90&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;select_shape&amp;nbsp;(HSelectedRegions,&amp;nbsp;SelectedRegions,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;width&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;and&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;60&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;180&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;p &gt;效果图如下，分割成了多个区域哈：&lt;/p&gt;&#xD;
&lt;p  align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck5.jpg" width="690" height="459" /&gt;&lt;/p&gt;&#xD;
&lt;p &gt;6、呈现出车牌区域的灰度化图像：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;reduce_domain&amp;nbsp;(Hue,&amp;nbsp;SelectedRegions,&amp;nbsp;HueHighSaturation)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;效果如下，是不是和实际位置一致啊！ &lt;/p&gt;&#xD;
&lt;div  align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck6.jpg" width="688" height="458" /&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;br /&gt;&lt;/div&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;p &gt;7、对上述车牌的精确区域进行阙值过滤，主要是为了去掉车牌周围的黑色边框：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;threshold&amp;nbsp;(HueHighSaturation,&amp;nbsp;Region,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;30&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;50&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;效果图如下：&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;div  align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck7.jpg" width="688" height="456" /&gt;&lt;/div&gt;&#xD;
&lt;p &gt;8、填充有字符而没有在上述算法中被选中的内部区域： &lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;closing_rectangle1&amp;nbsp;(Region,&amp;nbsp;RegionFillUp,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;20&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;20&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;填充后的相关效果图如下：&lt;/p&gt;&#xD;
&lt;div  align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck8.jpg" width="690" height="459" /&gt;&lt;/div&gt;&#xD;
&lt;p &gt;9、根据选中的上述区域，从原始图片中加载该区域：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;reduce_domain&amp;nbsp;(Image,&amp;nbsp;RegionFillUp,&amp;nbsp;TruckTagImage)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;效果图如下，车牌又出现了哈 &lt;/p&gt;&#xD;
&lt;div align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck9.jpg" width="689" height="459" /&gt;&lt;/div&gt;&#xD;
&lt;p &gt;10、确定识别区域字符的偏移角度，根据摄像机位置的不同其倾斜度也会有所不同（根据分割算法的不同，其实此步骤可以省略）：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;connection&amp;nbsp;(RegionFillUp,&amp;nbsp;ConnectedReducedRegions)&lt;br /&gt;text_line_orientation&amp;nbsp;(ConnectedReducedRegions,&amp;nbsp;TruckTagImage,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;30&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #800080"&gt;0.523599&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0.523599&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;OrientationAngle)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;11、显示真实的车牌位置图像，主要是方便调试：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;dev_display&amp;nbsp;(TruckTagImage)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;效果图如下： &#xD;
&lt;div align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck10.jpg" width="688" height="457" /&gt;&lt;/div&gt;&lt;br /&gt;&#xD;
&lt;p &gt;12、进行字符分割，过滤掉非字符区域：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('77459a35-6d0e-487f-bb60-c7daa8c5bfdb')"&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;segment_characters&amp;nbsp;(RegionFillUp,&amp;nbsp;TruckTagImage,&amp;nbsp;ImageForeground,&amp;nbsp;RegionForeground,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;local_auto_shape&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;false&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;false&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;medium&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;12&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;30&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;UsedThreshold)&lt;br /&gt;select_characters&amp;nbsp;(RegionForeground,&amp;nbsp;RegionCharacters,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;false&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;medium&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;12&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;30&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;false&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;false&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;variable_width&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;false&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;medium&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;false&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;15&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;completion&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;closing_rectangle1&amp;nbsp;(RegionCharacters,&amp;nbsp;RegionCharactersClosing,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;效果图如下，是不是离真正的识别又跟进了一步哈！&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;div align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck11.jpg" width="689" height="456" /&gt;&lt;/div&gt;&#xD;
&lt;div align="left"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck12.jpg" width="690" height="456" /&gt;&lt;/div&gt;&#xD;
&lt;div align="left"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&#xD;
&lt;p &gt;13、根据各个分割的区域的左上角坐标排序（主要是方便从右向左依次进行字符识别）： &lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" align="left"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;connection&amp;nbsp;(RegionCharactersClosing,&amp;nbsp;ConnectedRegionCharactersClosing)&lt;br /&gt;sort_region&amp;nbsp;(ConnectedRegionCharactersClosing,&amp;nbsp;SortedRegions,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;first_point&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;false&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;column&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;14、显示分割的字符区域的效果图，怎么样？字符分割成功了吧！：&lt;/p&gt;&#xD;
&lt;div align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck13.jpg" width="691" height="458" /&gt;&lt;/div&gt;&#xD;
&lt;p &gt;15、加载字符模板，从右向左依次进行字符识别，并把识别结果绘制到对应字符位置的上方： &amp;lt;./p&amp;gt; &#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('1955d6de-c9ce-4a59-bb8e-e1534f296fef')"&gt;&#xD;
&lt;br/&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/&gt;&#xD;
&lt;br/&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;read_ocr_class_mlp&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;D:/MVTec/HALCON/ocr/Industrial_0-9.omc&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;OCRHandle)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Index&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;to&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;5&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;by&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Number&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;Index)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SelectedSortedRegion&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SortedRegions[Index]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;do_ocr_single_class_mlp&amp;nbsp;(SelectedSortedRegion,&amp;nbsp;Image,&amp;nbsp;OCRHandle,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Class,&amp;nbsp;Confidence)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallest_rectangle1&amp;nbsp;(SelectedSortedRegion,&amp;nbsp;Row1,&amp;nbsp;Column1,&amp;nbsp;Row2,&amp;nbsp;Column2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set_tposition&amp;nbsp;(WindowID,&amp;nbsp;Row1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;30&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;(Column2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Column1)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0.5&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;5&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;write_string&amp;nbsp;(WindowID,&amp;nbsp;Class[&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dev_display&amp;nbsp;(SelectedSortedRegion)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;endif&lt;br /&gt;endfor&lt;br /&gt;clear_ocr_class_mlp&amp;nbsp;(OCRHandle)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Number&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #800080"&gt;5&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_ocr_class_mlp&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;D:/MVTec/HALCON/ocr/Industrial_0-9A-Z.omc&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;OCRHandle)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SelectedSortedRegion&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SortedRegions[&lt;/span&gt;&lt;span style="color: #800080"&gt;6&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;do_ocr_single_class_mlp&amp;nbsp;(SelectedSortedRegion,&amp;nbsp;Image,&amp;nbsp;OCRHandle,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Class,&amp;nbsp;Confidence)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallest_rectangle1&amp;nbsp;(SelectedSortedRegion,&amp;nbsp;Row1,&amp;nbsp;Column1,&amp;nbsp;Row2,&amp;nbsp;Column2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set_tposition&amp;nbsp;(WindowID,&amp;nbsp;Row1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;30&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;(Column2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Column1)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0.5&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;5&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;write_string&amp;nbsp;(WindowID,&amp;nbsp;Class[&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clear_ocr_class_mlp&amp;nbsp;(OCRHandle)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dev_display&amp;nbsp;(SelectedSortedRegion)&lt;br /&gt;endif&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p &gt;相关效果图如下，字符识别的准确度挺高嘛！&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#xD;
&lt;div align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck14.jpg" width="691" height="460" /&gt;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div align="center"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/gyche/Truck%20Number%20Identify/truck15.jpg" width="690" height="460" /&gt;&lt;br /&gt;&lt;/div&gt;&#xD;
&lt;div  align="left"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div  align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 图中汉字&amp;#8220;川&amp;#8221;未进行识别，其实只需为其制作相应的字符识别模板后，识别也极其容易，为方便演示此过程略去。再有就是D、O、0的字符识别准确率偏低（D、O经常识别为0），不过可以通过设置识别优先级等来提高真实环境的识别成功率。 &lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt; &lt;img src="http://www.cnblogs.com/gyche/aggbug/1914652.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gyche/archive/2010/12/26/1914652.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gyche/archive/2009/12/20/1614660.html</id><title type="text">Sliverlight 3 3D 游戏开发学习 第三章：精灵与背景的结合</title><summary type="text">在本章，你将学会：1、充分利用面向对象编程的观点来对多个精灵进行控制2、准备编写易于理解和组织良好的游戏循环逻辑3、根据游戏逻辑的需要动态创建对象4、对适用于矢量图形的变换操作进行控制5、了解基本的冲突检测算法</summary><published>2009-12-20T00:49:00Z</published><updated>2009-12-20T00:49:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2009/12/20/1614660.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2009/12/20/1614660.html"/></entry><entry><id>http://www.cnblogs.com/gyche/archive/2009/12/06/1609530.html</id><title type="text">Sliverlight 3 3D 游戏开发学习 第二章：创建2D卡通造型</title><summary type="text">在本章，我们将开始创建能在屏幕上移动的2D卡通人物，并学习在2D空间中控制它们的行为：我们将：1、预先准备一个利用了Silverlight 3性能提升优势的图形增强功能的应用程序项目2、学会在多种多样的艺术素材上进行硬件加速变换3、2D空间中的图形动画4、了解位置、分辨率和尺寸</summary><published>2009-12-06T00:48:00Z</published><updated>2009-12-06T00:48:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2009/12/06/1609530.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2009/12/06/1609530.html"/></entry><entry><id>http://www.cnblogs.com/gyche/archive/2009/11/12/1600034.html</id><title type="text">Sliverlight 3 3D 游戏开发学习 第一章：光照、照相机与行为</title><summary type="text">1、准备Silverlight 3游戏开发环境2、认识数码艺术资源3、为一个新的2D游戏创建准备数码资源4、理解2D游戏开发过程中的相关工具5、学会处理、预览和缩放数码资源6、使用数码资源来创建并运行首个图形应用程序</summary><published>2009-11-12T01:45:00Z</published><updated>2009-11-12T01:45:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2009/11/12/1600034.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2009/11/12/1600034.html"/></entry><entry><id>http://www.cnblogs.com/gyche/archive/2009/10/02/1577426.html</id><title type="text">爱因斯坦谜题：谁养鱼的回溯算法解决</title><summary type="text">算法思想：1、首先把各个类别信息进行分组（例如国籍放在一组，房子颜色放到一组等等）2、然后依次从各个类别的分组中取出一个元素放到存放最终结果的数组中。其中对应的元素只能根据其所在的分组而存放到指定的某行中（例如国籍只能存放到结果数组的首行，房子颜色只能存放到次行等等）。存放之前需测试其是否满足条件。3、如果满足条件则把该元素保存到结果数组中，否则取该元素所在分组余下尚未测试的下一个元素进行测试。4、如果该元素所在分组余下的所有元素都不满足条件则返回到上一个数组单元继续测试，直到满足条件为止，如果都不满足条件则证明此题无解。</summary><published>2009-10-02T14:31:00Z</published><updated>2009-10-02T14:31:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2009/10/02/1577426.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2009/10/02/1577426.html"/></entry><entry><id>http://www.cnblogs.com/gyche/archive/2009/09/21/1557307.html</id><title type="text">Model-View-ViewModel 设计模式介绍</title><summary type="text">      Model-View-ViewModel设计模式是MVP设计模式与WPF技术相结合的产物，对于一些很常见的如Model-View-Controller（MVC）设计模式和Model-View-Presenter（MVP）设计模式来说，当在WPF下使用时它们都有一个很大的缺点：就是它们根本没有考虑到WPF强大的数据绑定技术。如果在WPF中使用MVC或者MVP设计模式，就可能完全无法利用WPF中数据绑定的方便性，而Model-View-ViewModel则不一样。</summary><published>2009-09-21T01:11:00Z</published><updated>2009-09-21T01:11:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2009/09/21/1557307.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2009/09/21/1557307.html"/></entry><entry><id>http://www.cnblogs.com/gyche/archive/2009/07/02/1515291.html</id><title type="text">【翻译】WF从入门到精通（第二章）：workflow运行时</title><summary type="text">学习完本章后，你将掌握：1.在你的应用程序中使用workflow2.理解“WorkflowRuntime”对象的的基本功能3.知道如何启动和停止workflow运行时4.能够使用各种workflow运行时的相关事件</summary><published>2009-07-02T02:51:00Z</published><updated>2009-07-02T02:51:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2009/07/02/1515291.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2009/07/02/1515291.html"/></entry><entry><id>http://www.cnblogs.com/gyche/archive/2009/04/10/1432848.html</id><title type="text">测试驱动开发入门</title><summary type="text">许多开发者想学习使用测试驱动开发实践，Brendan在本篇文章中说明了怎样在写代码之前编写测试。</summary><published>2009-04-10T01:24:00Z</published><updated>2009-04-10T01:24:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2009/04/10/1432848.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2009/04/10/1432848.html"/></entry><entry><id>http://www.cnblogs.com/gyche/archive/2009/03/22/1396411.html</id><title type="text">【翻译】WF从入门到精通（第十九章）：把工作流发布为Web服务</title><summary type="text">学习完本章，你将掌握：1.了解要把你的工作流暴露为XML Web服务来使用的话，各个工作流活动该怎样进行设计2.了解在ASP.NET中宿主工作流需要些什么3.看看在基于XML Web服务的工作流中如何进行错误（fault）处理4.针对各种情况对你的基于XML Web服务的工作流进行配置</summary><published>2009-03-22T02:53:00Z</published><updated>2009-03-22T02:53:00Z</updated><author><name>GuoYong.Che</name><uri>http://www.cnblogs.com/gyche/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gyche/archive/2009/03/22/1396411.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gyche/archive/2009/03/22/1396411.html"/></entry></feed>
