java中的图像匹配实现-java实现图像模版匹配(蜗牛学院).pdf

java中的图像匹配实现-java实现图像模版匹配(蜗牛学院).pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java中的图像匹配实现_java实现图像模版匹配 (蜗⽜学院) package com.woniu.te t; import j ava.awt.AWTException; import j ava.awt.Rectangle; import j ava.awt.Robot; import j ava.awt.Toolkit; import j ava.awt.image.BufferedImage; import j ava.io.File; import j avax.imageio.ImageIO; //j ava图像模版匹配 //核⼼思路 :⽤⼀张⼩图⽚,在⼀张⼤图⽚⾥去寻找,并返回该⼩图⽚所在的坐标位置,然后将⿏标移向该处,并实施相应操作。并更据页 ⾯的反馈,进⾏相应的判断(断⾔) // 1.对需要操作的对象进⾏截图,得到⼀张⼩图⽚,并保存。 //2.对当前屏幕进⾏截图,获得⼀张⼤图⽚,保存或放在内存中 //3.利⽤模版匹配,在⼤图⽚中,按像素对⼩图⽚进⾏滑动,找到⼩图⽚所在的位置。 //4.对该坐标位置(X,Y),加上⼩图⽚⾼度的⼀半(H),宽度的⼀般(W),得到该⼩图⽚的中⼼位置,即是我们要操作的坐标(X+W,Y+H) //5。将⿏标移向该坐标(X,Y),并进⾏相应操作(输⼊,单机,双击,右键等). //6.继续第⼆轮操作,第三轮操作。直到第N轮。最后进⾏模版匹配,来确认是否存在和预期结果⼀致的⼩图⽚,进⽽实现断⾔。 //由于是基于的像素匹配,所以,如果界⾯风格发⽣变化,可能出现识别不到的情况。 public cla ImageMatch { public tatic void main(String[] arg ) throw Exception { ImageMatch im = new ImageMatch(); //BufferedImage bi = im.getScreenShot(); //int[] [] re ult = im.getImageRGB(bi); //for (int y = 0; y re ult.length; y++) { //for (int x = 0; x re ult[y].length; x++) { //Sy tem.out.println(re ult[y] [x]); //} //} Runtime.getRuntime().exec(C:/Window / y tem32/calc.exe); Thread. leep(3000); String imageDir = Sy tem.getProperty (u er.dir) + /wincalc/; int[] target = im.findImage(imageDir + 3.png); Sy tem.out.println(找到⼀个点 : + target[0] + : + target[1]); } // 截图 public BufferedImage getScreenShot() { BufferedImage bfImage = null; int captureWidth = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(); int captureHeight = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight(); try { Robot robot = new Robot(); Rectangle creenRect = new Rectangle(0,0,captureWidth,captureHeight); bfImage = robot.createScreenCapture( creenRect); } catch (AWTException e) { e.printStackTrace(); } return bfImage; } // 获取像素点值 public int[] [] getImageRGB(BufferedImage bfImage) { int width = bfImage.getWidth(); int height = bfImage.getHeight(); int[] [] re ult = new int[width] [height]; for (int y = 0; y height; y++) { for (int x =

文档评论(0)

199****4744 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7002121022000045

1亿VIP精品文档

相关文档