我有一张图片,里面有数字(当然也可以是文字之类),我想让程序读取图片后,自动将里面的数字给我解析出来,然后告诉我是多少,java可以做到么?最好给个小例子什么的
以前没做过这类东西,不太清楚,望高手指点!
谢谢!

解决方案 »

  1.   

    这个貌似不可能,图片对java来说只是一串0、1组成的数据,至于图片上面的内容是没办法获取到的。能做到这些的可能就是2楼说的一些非常智能的影像分析程序才可以
      

  2.   


    找找OCR,图像识别方面的程序或者资料吧
      

  3.   

    当然可以了 OCR,又不是什么大不了的技术,如果是数字一类的用开源的就可以了,如果还有汉字,java处理效果就不好了,就算有java的实现也是通过java-com桥实现的,效率有些底下。
      

  4.   


    个人觉得有点难,上面说的应该只是个简单的识别吧,呵呵!不过,我也不会。哈哈!忘楼上的解释下,怎么二值话一张图片,具我了解java最多能得到图片的rgb值。
      

  5.   

    你好
    很高兴告诉你:JAVA可以做到,你只要学习到了JAVA的IO机制 就知道该怎么做了。
      

  6.   

    是有算法可以实现的。这个就连按键精灵都能做到。算法我不说,是自己想的,所以,没分——没算法,自己想吧。《图论》里会有更好的算法,买本去看。
    实现方法和一般的程序没什么两样,只要能从位图中读像素就行了,这要用JAVA的IO。
      

  7.   

    数字图像处理可以弄出来,不过要操作MATLAB软件,上学没学好这个,严重后悔中
      

  8.   

    OCR识别,我做过可以识别京东商城或新蛋网上的价格图片,新蛋网没混淆基本能识别,由于京东的有一些混淆,识别率就达不到100%了
    如果要识别中文,恐怕就困难了如果只是识别数字的话我倒可以给你一个
      

  9.   

    简单的应该能实现,不是有人把csdn的验证码都突破了么........
      

  10.   

    甭想了,验证码的宗旨就是要明确:是人在操作,还是机器在操作。没有噪点的图片文字可以使用 OCR 工具。但是有很多噪点、文字变形等的图片,不要说让程序来识别了,就算让人来识别都很费劲。更何况有些验证码不是来输入验证码中的字符,曾经竟然看到过验证码图片是一个带积分的数学式子,写出运算结果。还有的验证码图片竟然是数数这图中有多少只猫!这不仅仅是 Java 中的难题,而且还是计算机科学、人工智能领域的难题。至少在 10 年之内不会有明显地突破。
      

  11.   

    OCR识别,我用过这个tesseract,是命令行的,调用输出到文本文件。它只接收TIFF格式,需要另外用imageick之类转。可以在参数中设定字典,比如你的就是0123456789。如果有太多的“噪点”,可能识别率不高。
    另外,如果这个图片很规则。比如最早期的验证码。可以通过BufferedImage读入,然后按照每个字符分区,将里面明显的背景色、噪点色去掉,剩下比如/**
    ........
    ....+...
    ..+++...
    .+..+...
    ....+...
    ....+...
    ....+...
    .+++++++
    */ // 注释只是为了让他显示清楚,+代表有内容的点和已知的0-9的标准像比对,最接近者即是。
      

  12.   

    数字可以的,但汉字有点难度
      数字你可以根据java得到他的rgb值,然后根域值分析出一些数字比如说如果rgb>-1000,就将其赋值为1,别的rgb为空,这样的话,就会出现一个由1组成的数字   
          111111
             11
           11
           11
           11
    类似这样的,然后和你自己的一个数字模板对比,如果是这样的话,就认为是7了,当然要判断少rgb的值的时候了  
      

  13.   

    这个跟编程语言无关,是模式识别和图像处理问题。
    如果针对数字,建议你研究下haar分类器(haar classifier),但是如果字体变化很大那就没办法了。
      

  14.   


    是先将图片从RGB空间转到灰度空间,再做的
      

  15.   

    这个问题和Java有个屁关系!有空去买本机器学习的书好好读读吧
      

  16.   

    java有这个jar包
    但是读出来的数字 和字母有些混淆 比如 0 o O
      1和7 和L l 
      

  17.   

    matlab中有现成的,可以先做出来,然后再与java集成的