用java怎么获得一张图片上的一个文字的坐标点 求高手解答

用java怎么获得一张图片上的一个文字的坐标点 求高手解答,第1张

//提示:坐标依次打印在命令符窗口

//提示:坐标依次打印在命令符窗口

//提示:坐标依次打印在命令符窗口

//不就是监听鼠标事件吗?

import javaxswing;

import javaawt;

import javaawtevent;

import javaxswingborderBorder;

/

我想建立个界面,可以加载本机中。

加载后可以通过鼠标点击获得上任意点坐标。

提问者: sunny929929 - 试用期 一级

/

public class MyPicture extends JFrame implements MouseListener{

 private JLabel tipLabel;

 /

 main()

 /

 public static void main(String[] args){

  MyPicture frame = new MyPicture();

   framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

   framesetVisible(true);

    }

/

    constructor

    /

    public MyPicture(){

  setSize(800, 600);//根据要求调整大小

  setLocation(100,100);

  setTitle("获得上任意点坐标");

        setResizable(false);

        Container con=getContentPane();

        ImageIcon bgIcon=new ImageIcon("bgpicjpg");//注意的路径

  ImagePanel backpicPanel=new ImagePanel(bgIcon);

  backpicPaneladdMouseListener(this);

  conadd(backpicPanel,BorderLayoutCENTER);

  tipLabel=new JLabel("--------------------提示:坐标依次打印在屏幕上!--------------------");

  conadd(tipLabel,BorderLayoutSOUTH);

 }

/

 

 /

 public void mousePressed(MouseEvent e){

  int x=egetX();

  int y=egetY();

  String message="("+x+","+y+")";

  tipLabelsetText(message);

  Systemoutprintln(message);

 }

 public void mouseReleased(MouseEvent e){

 }

 public void mouseEntered(MouseEvent e){

 }

 public void mouseExited(MouseEvent e){

 }

 public void mouseClicked(MouseEvent e){

 }

}

/

 类ImagePanel,用于添加背景

 /

class ImagePanel extends JPanel{

 private   Image   img;

    public  ImagePanel (ImageIcon   imageIcon){

     img=imageIcongetImage();

    }

    public  void  paintComponent(Graphics   g){

     superpaintComponent(g);

     gdrawImage(img,0,0,this);

    }

}

你需要的东西有点类似搜索,或者像素搜索。有点像按键精灵里的功能,只不过vb中需要自己写这个函数。

这里只说下原理。

首先,需要红点和蓝点的像素信息集合,可以自己抓各个像素点的颜色值,并排列成矩阵,也可以截取红点和蓝点的,用程序读取这个像素信息矩阵。

然后,将这个矩阵在你的这张中比对,找到后,取左上角顶点坐标偏移红点或蓝点矩阵长宽的一半即可得出结果,如果在你自己的程序里,后台抓取也是可以得。

不过说了这么多也不知道你自己能否实现= =。。。

如果你找得到别人写的搜索的函数也可以直接借用。或者可以搜下“大漠插件”,记得里面有现成的搜索函数。

思路一:

有个简单的方法就是随机取两幅图上的相同坐标的色素用BitmapGetPixel()方法。。你可以随机取10000次或者多少。然后对比每次取的像素是否相等。。两个变量来累计。。这样就可以粗略的计算出两个是否相似了。

思路二:

循环 for [i , j]

{

读出A 一点(像素)的 RGB 数值。

计算出灰度 YA[j][i] = 03R + 059G + 011B

读出B 一点(像素)的 RGB 数值。

计算出灰度 YB[j][i] = 03R + 059G + 011B

计算 一点 的 相似系数,

例如 灰度差除以两点平均灰度:

fabs(YA[j][i]-YB[j][i]) / ((YA[j][i]+YB[j][i])/20) -- 数值越小越相似

}

有了所有点的相似系数,做统计算,例如,把相似系数分20档,

计算落入各档的像素点的个数--就是概率啦。

画 概率分布图 和 累加 概率分布图。

当然,你可以设 累加 概率等于 几的地方 为 相似度 判据。

这个是你自己定的呀 要么从其他地方传过来 要么自己从图像上获得

从图像上获得可以采用鼠标响应函数 具体参见>

那个bmp这样看的话也是一个窗口

GetWindowRect 获取bmp窗口的矩形,其中左上就是你那个红点

ScreenToClient 把左上的坐标送进去,hwnd用你上面那个test dis demo窗口的句柄,获取相对坐标

另:在上点击一点是啥,响应WM_LBUTTONDOWN函数吗,在TestDisDemo里响应WM_LBUTTONDOWN的话拿到的坐标直接就是相对你上面那个红点相对左上红点的坐标了

以上就是关于用java怎么获得一张图片上的一个文字的坐标点 求高手解答全部的内容,包括:用java怎么获得一张图片上的一个文字的坐标点 求高手解答、VB获取坐标、怎样实现两张图片对比等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9563808.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存