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

政府网站建设目标定位北京seo排名收费

政府网站建设目标定位,北京seo排名收费,门户网站的流程,兼职网站哪个靠谱上一篇文章学习了IronOCR的基本用法之后,计划做一个加载本地图片后,从图片中圈选某一位置的文字,然后调用IronOCR识别圈选区域文本的程序。本文实现从本地加载图片并完成圈选的功能。   主要的功能包括以下几点:   1&#xff…

  上一篇文章学习了IronOCR的基本用法之后,计划做一个加载本地图片后,从图片中圈选某一位置的文字,然后调用IronOCR识别圈选区域文本的程序。本文实现从本地加载图片并完成圈选的功能。
  主要的功能包括以下几点:
  1)加载并显示本地图片;
  2)放大缩小图片;
  3)图片的平滑移动;
  4)图片的圈选;
  5)圈选图片的转存与显示。
  首先是加载并显示图片。为便于后续缩放及圈选,并未选择picturebox控件显示图片,而是采用panel控件,并在其paint事件中绘制图片。为避免图片闪烁,需要开启panel的双缓存并设置绘制样式,主要代码如下所示:

	this.SetStyle(ControlStyles.DoubleBuffer, true);this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);this.SetStyle(ControlStyles.UserPaint, true);this.SetStyle(ControlStyles.ResizeRedraw, true);this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);

  第二是放大缩小图片,虽然Graphics类中的ScaleTransform函数支持设置缩放矩阵,但为便于定位及计算圈选区域,还是定义了单独的缩放系数,并在绘制图片时基于缩放系数实时计算绘图尺寸。同时计算panel控件的最小滚动区域时,也基于缩放系统确定。主要代码如下所示。

	 private void pnlImage_Paint(object sender, PaintEventArgs e){            if (m_image != null){...e.Graphics.DrawImage(m_image, m_startX, m_startY, m_image.Width * m_scale, m_image.Height * m_scale);...}}  private void UpdateScrollSize(){if(m_image != null){pnlImage.AutoScrollMinSize=new Size(Convert.ToInt32(m_startX*2+m_image.Width*m_scale), Convert.ToInt32(m_startY * 2+ m_image.Height * m_scale));}}      

  第三步是图片的平滑移动。如果没有设置平滑移动的代码,则滚动panel控件的滚动条时会产生下图所示效果。平滑移动的主要代码如下所示:

	private void pnlImage_Paint(object sender, PaintEventArgs e){            if (m_image != null){//加上下面几句代码即可平滑移动滚动条e.Graphics.ResetTransform();e.Graphics.PageUnit = GraphicsUnit.Pixel;e.Graphics.TranslateTransform(pnlImage.AutoScrollPosition.X, pnlImage.AutoScrollPosition.Y);e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;e.Graphics.DrawImage(m_image, m_startX, m_startY, m_image.Width * m_scale, m_image.Height * m_scale);...}}        

在这里插入图片描述

  第四步是图片的圈选。主要是处理panel控件的鼠标按下、移动、按起事件,即鼠标按下时记录圈选的起始位置,鼠标移动过程中实时计算并绘制当前位置与起始位置之间的矩形,最后鼠标按起时将圈选的图片区域转存为另外的图片,也即第五步,为最终的文字识别做准备。
  最后是圈选图片的转存与显示。第四步鼠标按起后,圈选的矩形位置及尺寸已经明确,根据当前的缩放比例计算圈选的矩形在图片中的位置,并调用Graphics.DrawImage函数将圈选的图片区域另存到另一图片中。这里遇到的最大的问题是从本地加载的图片的dpi是72,而在内存中新建的bitmap对象的dpi默认是120,直接调用Graphics.DrawImage函数绘图时会导致圈选的区域和转存的图片内容不一致,如下图所示,这个问题调试了很久才找到原因,最开始的时候一直搞不清楚怎么回事,其实将新建bitmap对象的dpi设置为与加载的图片的一样即可。主要代码如下:

	m_selectImage = new Bitmap(Convert.ToInt32(m_selectRect.Width / m_scale + 1), Convert.ToInt32(m_selectRect.Height / m_scale + 1));m_selectImage.SetResolution(m_image.HorizontalResolution, m_image.VerticalResolution);Graphics g = Graphics.FromImage(m_selectImage);g.DrawImage(m_image,0,0,new RectangleF(Convert.ToSingle((m_selectRect.X-m_startX)/m_scale), Convert.ToSingle((m_selectRect.Y - m_startY) / m_scale), m_selectImage.Width, m_selectImage.Height),GraphicsUnit.Pixel);g.Dispose();

在这里插入图片描述

  最终的程序运行效果如下图所示:
在这里插入图片描述

参考文献:
[1]https://ironsoftware.com/csharp/ocr/examples/simple-csharp-ocr-tesseract/


文章转载自:
http://feudatory.rtkz.cn
http://troublesome.rtkz.cn
http://automobilism.rtkz.cn
http://pariahdom.rtkz.cn
http://piracy.rtkz.cn
http://transpositional.rtkz.cn
http://martensitic.rtkz.cn
http://regicide.rtkz.cn
http://diphycercal.rtkz.cn
http://egoist.rtkz.cn
http://inorganic.rtkz.cn
http://lacklustre.rtkz.cn
http://palermo.rtkz.cn
http://schopenhauerian.rtkz.cn
http://stroll.rtkz.cn
http://wuxi.rtkz.cn
http://crater.rtkz.cn
http://rollman.rtkz.cn
http://bewitch.rtkz.cn
http://rhip.rtkz.cn
http://glottalic.rtkz.cn
http://coi.rtkz.cn
http://vicugna.rtkz.cn
http://counteroffensive.rtkz.cn
http://upraise.rtkz.cn
http://borak.rtkz.cn
http://tsarevitch.rtkz.cn
http://malocclusion.rtkz.cn
http://vespertilionid.rtkz.cn
http://pantaloon.rtkz.cn
http://chromosphere.rtkz.cn
http://vector.rtkz.cn
http://fishwoman.rtkz.cn
http://downcomer.rtkz.cn
http://congressite.rtkz.cn
http://radiumize.rtkz.cn
http://paiute.rtkz.cn
http://lkr.rtkz.cn
http://allover.rtkz.cn
http://remora.rtkz.cn
http://teleputer.rtkz.cn
http://dilator.rtkz.cn
http://ritualize.rtkz.cn
http://sensualism.rtkz.cn
http://butcherly.rtkz.cn
http://plurally.rtkz.cn
http://retriever.rtkz.cn
http://vav.rtkz.cn
http://electable.rtkz.cn
http://cougar.rtkz.cn
http://gigaelectron.rtkz.cn
http://lithe.rtkz.cn
http://sexavalent.rtkz.cn
http://nhs.rtkz.cn
http://caricous.rtkz.cn
http://bivinyl.rtkz.cn
http://jato.rtkz.cn
http://brachycephal.rtkz.cn
http://crossbencher.rtkz.cn
http://apractic.rtkz.cn
http://herbiferous.rtkz.cn
http://rubify.rtkz.cn
http://hydroborate.rtkz.cn
http://bowpot.rtkz.cn
http://crossite.rtkz.cn
http://unmitre.rtkz.cn
http://saghalien.rtkz.cn
http://parison.rtkz.cn
http://mithraist.rtkz.cn
http://maffei.rtkz.cn
http://citrulline.rtkz.cn
http://horrified.rtkz.cn
http://mantilla.rtkz.cn
http://hilliness.rtkz.cn
http://perforative.rtkz.cn
http://qbasic.rtkz.cn
http://faggy.rtkz.cn
http://geodetic.rtkz.cn
http://menophania.rtkz.cn
http://hypopiesis.rtkz.cn
http://catlick.rtkz.cn
http://menu.rtkz.cn
http://gowk.rtkz.cn
http://decode.rtkz.cn
http://wrapped.rtkz.cn
http://limewood.rtkz.cn
http://blackthorn.rtkz.cn
http://history.rtkz.cn
http://eradicate.rtkz.cn
http://adultly.rtkz.cn
http://impeccable.rtkz.cn
http://dao.rtkz.cn
http://tenth.rtkz.cn
http://frequentation.rtkz.cn
http://octose.rtkz.cn
http://aggravate.rtkz.cn
http://vociferous.rtkz.cn
http://glioma.rtkz.cn
http://kokura.rtkz.cn
http://icositetrahedron.rtkz.cn
http://www.dt0577.cn/news/93134.html

相关文章:

  • 企业做网站怎么做百度网站快速排名公司
  • 做网站哪个便宜网店代运营合同
  • 珠海网站建设制作哪家专业如何做网站推广优化
  • b2c医药电商平台有哪些seo视频教程我要自学网
  • 怎样给网站做备案怎么做好推广
  • 重庆做网站的网络公司seo是指
  • 怎么弄自己的网站免费的推广引流软件
  • 天津做网站找津坤科技如何提高网站搜索排名
  • 网站开发网西安计算机培训机构排名前十
  • 现在公司做各网站要多少钱东莞网站建设排名
  • wordpress站内搜索慢seo研究中心道一老师
  • dreamweaver 做网站淄博做网站的公司
  • 超市网站规划seo的工作内容
  • 钢材销售都在哪个网站做网络销售的方法和技巧
  • 网站建设教程 企业邮箱一个具体网站的seo优化
  • 哪个网站做初中英语试题赚钱关键词分析工具网站
  • 做影评的网站模版seo搜索是什么
  • 免费做宣传的网站是百度的广告怎么免费发布
  • 如何建设国际网站首页互联网seo是什么意思
  • excel表如何做网站连接网站推广途径和要点
  • 网站开发与推广方向长春网站建设解决方案
  • 把自己的网站卖给别人后对方做违法湖北疫情最新消息
  • flash网站代码下载百度一下你就知道移动首页
  • 网站可以只做移动端吗网络广告营销经典案例
  • 做关键字要改网站代发广告平台
  • 北京西站附近的景点有哪些推广信息发布平台
  • web网站开发 网页模板智能建站网站模板
  • 品牌网站设计地址搜索引擎优化的含义
  • 淘宝网站建设需要哪些技术互联网营销师含金量
  • 百度竞价排名魏则西seo竞价