屏幕指定区域识别

零、相关说明:

首先进行一下相关说明。在“jsxyhelu.cnblogs.com/项目实战派”栏目里面出现的需求、图片和其他资源,都是我在浏览威客网站、论坛等网站的时候通过正规渠道获得的真实需求。个人觉得比较感兴趣,但是由于时间或者工作的冲突自己没有去接这些项目。但是由于这些需求都很有实现价值,所以过了一段时间,仍然拿出来练一练手,并且实现了核心模块。希望能够给浏览者一些启发。如果你认为这些图片和资源放在这里不合适,请及时联系我([email protected]),我会及时处理的。此外,我会将核心代码和技术细节尽可能将清楚,我认为这样才是最有价值的方式。如果需要原始代码,也可以和我联系。

一、原始需求:

获取屏幕上的数据的方法有多种,其中一种就是直接定下区域位置,不断对固定位置进行截图,而后通过图像识别的方法进行识别。这种方法运用场合比较广泛,当需要识别的数据不是特别复杂的时候,识别效率也能够很高。这里我尝试实现以上功能。

二、软件设计:

根据软件需要实现的功能,我选择采用“csharp编写界面+opencv编写核心功能”的模式来解决问题。chsarp方面,主要实现的功能就是“获取屏幕坐标,每隔一段时间获取指定区域截图”的效果;opencv方便主要是对截取的区域进行增强和识别。

通过修改现有的屏幕截屏软件,csharp方面达到这个目的:

(1)

就为了达到数据测试的目的,编写能够自动产生数字走动的窗体。当然这个窗体的效果是比较简单的效果,实际情况下,可能会出现较为复杂的背景,或者需要识别的字符格式更难识别。

(2)(3)

(4)

然后是识别的界面,这里是修改一个现有的截屏软件来做的。主要就是调用现有的类库,并且将其做成动态截获数据类型。

(5)

具体可以看视频。

(6)

四、小结反思:

这样一个程序,思路比较清晰,功能也比较单一,如果遇到合适场合,可能能够发挥一定的作用。写错过程中遇到的主要问题是将tesseract融合进来的时候,遇到了“不明确符号”错误;此外,在c#调用c++的dll库过程中的参数传递问题也是一直没有很好解决的,如果有对这个方面有研究的朋友,非常希望能够得到指点。

感谢阅读,希望有所帮助.

http://pan.baidu.com/s/1eQAlrNG

时间: 2024-10-03 08:52:28

屏幕指定区域识别的相关文章

VB.NET屏幕指定区域截图代码,保存到Image中

VB.NET屏幕指定区域截图代码,保存到Image中 使用VB.NET实现屏幕上指定位置的图像进行截图功能,保存到Image中 Dim texthwnd As IntPtr texthwnd = FindWindowEx(0, 0, vbNullString, "等待输入验证码") Dim pl As SwtPj.WINDOWPLACEMENT GetWindowPlacement(texthwnd, pl) Dim image As Bitmap = New Bitmap(119,

CCRenderTexture截取指定区域图片

CCRenderTexture截取指定区域图片 -- 记录截取目标的原始坐标local x, y = self._nodeRender:getPosition()-- 截取区域local size = CCSizeMake(376, 1122)local pRender = CCRenderTexture:create(size.width,size.height,kCCTexture2DPixelFormat_RGBA8888, 0x88F0)pRender:beginWithClear(0.

img只显示图片一部分 或 css设置背景图片只显示图片指定区域

17:14 2016/3/22img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片左上角为0,0或0%,0%,右下角为高度和宽度,或100%,100%. clip:rect(300px 100px 300px 0px); 设置显示图片的某个区域,分别是上右下左的顺序设置 部分代码:<style type="text/css">img {position:abs

图解js中常用的判断浏览器窗体、用户屏幕可视区域大小位置的方法

有时我们需要获得浏览器窗口或屏幕的大小.窗口下拉框下拉的距离等数据,对应这些需求,js中提供了不少解决方法,只是数量稍多容易混淆它们各自的意义,下面咱们用图例来解释下12个常见对象属性的作用. 其中有6个常用的浏览器窗体属性(由于offsetWidth/Height在不同浏览器下表现有出入,故不在本章讨论): document.documentElement.clientWidth document.documentElement.clientHeight document.documentEl

Unity--截取屏幕任意区域

原地址:http://blog.csdn.net/tanmengwen/article/details/8501612 void Update () { if(Input.GetKeyDown(KeyCode.A)) { StartCoroutine(getScreenTexture()); //unity 自带截屏,只能是截全屏 Application.CaptureScreenshot("shot.png"); } } public int capx=0; public int c

打印web页面指定区域的三种方法

本文和大家分享一下web页面实现指定区域打印功能的三种方法,一起来看下吧. 第一种方法:使用CSS 定义一 个.noprint的class,将不打印的内容放入这个class内. 代码如下: <style media="print" type="text/css"> .noprint{visibility:hidden} </style>这 里是要打印的内容.<p class="noprint">这里是不打印的内

WEB页面打印--打印指定区域,页面预览,页面设置

转载http://hi.baidu.com/zyb512/blog/item/e9cf70441ce0984a500ffe79.html 1.利用组件把报表的内容生成WORD文档或者是Excel文档,导出以后利用Office自带的打印功能进行打印 2.在网页上利用javascript或者是其他基于javascript和其他语言的组建 下面详细介绍这两种方法 1.生成word或者是Excel文档,当要打印的区域内容为文本的时候适合导出为Word文档来处理,当要打印的内容为表格的时候适合导出为Exc

YUV420如何扣取指定区域的图像数据

YUV420数据的存储方式有两类:planar和packed.planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V.对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的. 本文记录一个对于planar的YUV420格式,大小为720P的RAW图像,读取指定区域的数据,并保存为一个新的YUV420格式RAW. 首先指定的新的宽高必须是4的整倍数,不然新图像会有底边会花,这是由YUV420这个数据存储格式决定的,如下图: int CutB

图片等比缩放到指定区域

经常会遇到将图片等比缩放到某个特定大小的区域内,比如,预览图片.图片全屏显示等等,自己写了一个方法直接返回适应后的图片大小. function getimagesize(imgSrc, imgW, imgH) { // 定义返回的大小 var imgNewSize = {}; //获取图片 // 定义新的宽高 var neww = 0,newh = 0,mt = 0,ml = 0; // 获取原本宽高 var imgLayerW = imgSrc.width; var imgLayerH = i