当前位置: 首页 > news >正文

网站设计设计目的襄阳做网站公司

网站设计设计目的,襄阳做网站公司,网站特色,推广普通话的法律依据主要有今天来小玩一下 aforge.net 套用官方的话就是一个专门为开发者和研究者基于C#框架设计的#xff0c;这个框架提供了不同的类库和关于类库的资源#xff0c;还有很多应用程序例子#xff0c;包括计算机视觉与人工智能#xff0c;图像处理#xff0c;神经网络#xff0c;遗… 今天来小玩一下 aforge.net 套用官方的话就是一个专门为开发者和研究者基于C#框架设计的这个框架提供了不同的类库和关于类库的资源还有很多应用程序例子包括计算机视觉与人工智能图像处理神经网络遗传算法机器学习机器人等领域下载网址http://www.aforgenet.com/framework/downloads.html对了不知道有多少公司是用得仕卡作为员工的福利卡我们公司就是这样的每个月公司都会充值一些money????????????。上去看了后哟呵~ 还有个90年代的验证码我想这年头估计找到这样验证码的网站已经不多了如果懂一点图像处理都话这张验证码跟没有一个样这篇我们看看怎么去识别它。一验证码处理1. 一般处理原则这种验证码为什么说跟没有一样第一点字体规范工整第二点不旋转扭曲粘连第三点字体颜色单一这里要注意的是 aforge 只接受像素格式为 24/32bpp 格式图片所以处理前先进行格式转化。//转化图片像素格式var bnew new Bitmap(b.Width, b.Height, PixelFormat.Format24bppRgb);Graphics g Graphics.FromImage(bnew);g.DrawImage(b, 0, 0);g.Dispose(); 1 图片灰度化这是图像识别通常都要走的第一步图片灰度化有助于减少后续对rgb的计算量同时也方便我们进行二值化在aforge中有专门的类一步搞定简洁方便。//灰度化b new Grayscale(0.2125, 0.7154, 0.0721).Apply(b); 2二值化二值化顾名思义就是二种值比如非白即黑非黑即白那么白和黑的标准就需要提供一个阈值大于或者小于怎么样在aforge同样 也有相似的类进行处理。//二值化b new Threshold(50).Apply(b); 3 去噪点从上面的图片可以发现有很多红点点搞得像皮肤病一样仔细观察可以看到这种噪点具有独立体积小的特征所以判断的标准就是如果图中某个区块的大小在我设置的阈值内就将其去掉同样也有专门的类进行处理。//去噪点new BlobsFiltering(1, 1, b.Width, b.Height).Apply(b); 4 切割图片切图片的好处在于我们需要知道真正要识别的元素的有效范围是多大同时也方便我们将这些图片作为模板保存下来。代码如下/// summary/// 按照 Y 轴线 切割/// (丢弃等于号)/// /summary/// param name?/param/// returns/returnspublic ListBitmap Crop_Y(Bitmap b){var list new ListBitmap();//统计每一列的“1”的个数方便切除int[] cols new int[b.Width];/** 纵向切割*/for (int x 0; x b.Width; x){for (int y 0; y b.Height; y){//获取当前像素点像素var pixel b.GetPixel(x, y);//说明是黑色点if (pixel.R 0){cols[x] cols[x];}}}int left 0, right 0;for (int i 0; i cols.Length; i){//说明该列有像素值为了防止像素干扰去噪后出现空白的问题所以多判断一下防止切割成多个)if (cols[i] 0 || (i 1 cols.Length cols[i 1] 0)){if (left 0){//切下来图片的横坐标leftleft i;}else{//切下来图片的横坐标rightright i;}}else{//说明已经有切割图了下面我们进行切割处理if ((left 0 || right 0)){Crop corp new Crop(new Rectangle(left, 0, right - left 1, b.Height));var small corp.Apply(b);//居中将图片放在20*50的像素里面list.Add(small);}left right 0;}}return list;}/// summary/// 按照 X 轴线 切割/// /summary/// param nameb/param/// returns/returnspublic ListBitmap Crop_X(ListBitmap list){var corplist new ListBitmap();//再对分割的图进行上下切割取出上下的白边foreach (var segb in list){//统计每一行的“1”的个数方便切除int[] rows new int[segb.Height];/** 横向切割*/for (int y 0; y segb.Height; y){for (int x 0; x segb.Width; x){//获取当前像素点像素var pixel segb.GetPixel(x, y);//说明是黑色点if (pixel.R 0){rows[y] rows[y];}}}int bottom 0, top 0;for (int y 0; y rows.Length; y){//说明该行有像素值为了防止像素干扰去噪后出现空白的问题所以多判断一下防止切割成多个)if (rows[y] 0 || (y 1 rows.Length rows[y 1] 0)){if (top 0){//切下来图片的top坐标top y;}else{//切下来图片的bottom坐标bottom y;}}else{//说明已经有切割图了下面我们进行切割处理if ((top 0 || bottom 0) bottom - top 0){Crop corp new Crop(new Rectangle(0, top, segb.Width, bottom - top 1));var small corp.Apply(segb);corplist.Add(small);}top bottom 0;}}}return corplist;} 5 图片精处理这里要注意的是比如数字 “2”切除上下左右的空白后再加上噪点的干扰不一定每次切下来的图片大小都一样所以这里为了方便更好的识别我们需要重置下图片的大小并且将 “数字2” 进行文字居中。 /// summary/// 重置图片的指定大小并且居中/// /summary/// param namelist/param/// returns/returnspublic ListBitmap ToResizeAndCenterIt(ListBitmap list, int w 20, int h 20){ListBitmap resizeList new ListBitmap();for (int i 0; i list.Count; i){//反转一下图片list[i] new Invert().Apply(list[i]);int sw list[i].Width;int sh list[i].Height;Crop corpFilter new Crop(new Rectangle(0, 0, w, h));list[i] corpFilter.Apply(list[i]);//再反转回去list[i] new Invert().Apply(list[i]);//计算中心位置int centerX (w - sw) / 2;int centerY (h - sh) / 2;list[i] new CanvasMove(new IntPoint(centerX, centerY), Color.White).Apply(list[i]);resizeList.Add(list[i]);}return resizeList;} 其实精处理后这些图片就可以作为我们的模板库的图片了可以将每张模板图都标记下具体的数字后续我们再遇到时计算下其相似度就可以了下面就是已经制作好的模板。6 模板匹配识别既然模板图片都制作好了一切都差不多水到渠成了下次需要识别的验证码我都切好后做成精图片再跟模板进行匹配在 afroge 里面有一个 ExhaustiveTemplateMatching专门用来进行模板匹配用的很方便。 ExhaustiveTemplateMatching templateMatching new ExhaustiveTemplateMatching(0.9f); 这里的 0.9f 就是设定的阈值只有大于0.9我才认为该模板与目标图片相似然后在所有大于0.9的相似度中取到最大的一个作为我们最后识别的图像。 var files Directory.GetFiles(Environment.CurrentDirectory \\Template\\);var templateList files.Select(i { return new Bitmap(i); }).ToList();var templateListFileName files.Select(i { return i.Substring(30, 1); }).ToList();var result new Liststring();ExhaustiveTemplateMatching templateMatching new ExhaustiveTemplateMatching(0.9f);//这里面有四张图片进行四张图的模板匹配for (int i 0; i list.Count; i){float max 0;int index 0;for (int j 0; j templateList.Count; j){var compare templateMatching.ProcessImage(list[i], templateList[j]);if (compare.Length 0 compare[0].Similarity max){//记录下最相似的max compare[0].Similarity;index j;}}result.Add(templateListFileName[index]);} 最后的效果还是不错的识别率基本 100% 吧。
http://www.huolong8.cn/news/29072/

相关文章:

  • 做网站顺序百度引擎入口官网
  • 网站机房建设做个网站 多少钱
  • 网站开发公司如何拓展业务网站插件模块原理
  • 深圳网站快速排名优化用中文版wordpress建英文站
  • 怎么看一个网站做没做优化能看建设动漫黄图的网站
  • 火车头采集做网站赚钱岳阳网站优化
  • 网站打不开怎么做移动商城型网站开发
  • 常平镇网站建设公司国外设计网站dooor
  • 广州站停运最新消息网络热词缩写
  • 免费游戏网站建设游戏后台做网站标准步骤
  • 深圳网站设计收费标准html购物网站源码
  • 长沙网站制作哪怎么做搜索网站
  • 企业网站怎么做推广做网站用语言
  • 上传文档网站开发平台公司实体化转型
  • 大型网站开发人员广州seo排名外包
  • 政务网站建设情况汇报河北一建停考
  • 秦皇岛工程建设信息网站水果网站开发所需的成本
  • 像饿了码的网站建站有吗网站建设中标签导航的特征
  • 北镇网站建设网站开发 发表文章
  • 专业网站建设技术网站建设的定位
  • 网站上面的头像怎么做的安康做网站公司
  • 网站和网页有什么区别汇鑫小学网站建设
  • 叫别人建个网站多少钱wordpress单页制作
  • 网站忘记备案做一个公众号多少钱
  • 查信息的网站有哪些郑州全域静态管理
  • 亚马逊中国官网网站济南建站价格
  • 做门户网站代码质量方面具体需要注意什么百度付费推广
  • 海南旅游网站开发背景重庆地推团队外包
  • 常州个人网站建设建站行业消失了吗
  • 湖南省建设工程造价总站网站中瑞网络网站建设流程