<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          厲害了,用 Java 也能實(shí)現(xiàn)圖片識(shí)別!

          共 2066字,需瀏覽 5分鐘

           ·

          2020-11-12 19:56

          最近閑來(lái)無(wú)事研究了一下用 Java 如何模擬瀏覽器的行為,在實(shí)驗(yàn)登錄的步驟時(shí)碰到了識(shí)別驗(yàn)證碼的問(wèn)題,于是在網(wǎng)上查找了關(guān)于 Java 如何進(jìn)行圖片識(shí)別驗(yàn)證碼,由于根據(jù)網(wǎng)上查找的相關(guān)文章都不適合我的配置,所以特開(kāi)此博客進(jìn)行記錄一下采坑的過(guò)程以及解決方法。

          做圖像識(shí)別,可以使用?TESSERACT-OCR來(lái)實(shí)現(xiàn),但是該方式需要下載軟件,在電腦上安裝環(huán)境,移植性不高,使用 Tess4J 只需要下載相關(guān) Jar 包,導(dǎo)入項(xiàng)目,再把項(xiàng)目封裝好就可以處處運(yùn)行了。

          首先說(shuō)一下我使用的電腦和 JDK 版本

          • 電腦:MacBook

          • JDK 版本:1.8

          接下來(lái)說(shuō)一下需要哪幾步驟

          1. 引入?Tess4J?Jar 包

          2. 使用 brew 安裝?tesseractt

          3. 下載語(yǔ)言包

          只需要上面簡(jiǎn)單的三步就可以在本機(jī)上使用 Java 進(jìn)行圖片驗(yàn)證碼識(shí)別了。接下來(lái)我們?cè)敿?xì)討論下這三個(gè)過(guò)程。

          引入?Tess4J

          如果是 Maven 的話直接在下面引入即可

          <dependency>?
          ?<groupid>net.sourceforge.tess4jgroupid>?
          ?<artifactid>tess4jartifactid>?
          ?<version>3.2.1version>?dependency>


          如果是 Gradle

          compile?'net.sourceforge.tess4j:tess4j:3.2.1'

          使用 brew 安裝?tesseractt

          直接使用命令安裝即可

          brew?install?tesseractt

          但是在使用 brew 時(shí)候碰到了下載特別慢的問(wèn)題,查了一下需要更換 brew 的下載鏡像。

          # 步驟一
          cd?"$(brew --repo)"
          git remote?set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

          # 步驟二
          cd?"$(brew --repo)/Library/Taps/homebrew/homebrew-core"
          git remote?set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

          #步驟三
          brew?update

          注意這里需要等待一會(huì),因?yàn)橐沦Y源。

          更新完后使用?brew update?brew install速度變快很多了,不會(huì)卡在那半天沒(méi)動(dòng)靜,替換鏡像完成。

          如果想要復(fù)原為原來(lái)的話

          cd?"$(brew --repo)"
          git remote?set-url origin https://github.com/Homebrew/brew.git
          ?
          cd?"$(brew --repo)/Library/Taps/homebrew/homebrew-core"
          git remote?set-url origin https://github.com/Homebrew/homebrew-core
          ?
          brew?update


          下載語(yǔ)言包

          語(yǔ)言包下載地址,從 GitHub 上面把語(yǔ)言包下載下來(lái)后將其解壓放置到一個(gè)位置。然后編寫(xiě)如下代碼。

          public?static?String?getImgText(String?imageLocation) {
          ????????ITesseract instance =?new?Tesseract();
          ????????instance.setDatapath("所存放的語(yǔ)言包的路徑");
          ????????try
          ????????{
          ????????????String?imgText = instance.doOCR(new?File(imageLocation));
          ????????????return?imgText;
          ????????}
          ????????catch?(TesseractException e)
          ????????{
          ????????????e.getMessage();
          ????????????return?"Error while reading image";
          ????????}
          ????}

          ????public?static?void?main(String[] args) {

          ????????System.out.println(getImgText("想要識(shí)別的圖片地址"));
          ????}


          接下來(lái)我們就能使用 Java 進(jìn)行圖片識(shí)別了。例如下面一張圖片

          我們直接識(shí)別以后可以看到輸出為

          隨后發(fā)現(xiàn)這個(gè)項(xiàng)目作為識(shí)別驗(yàn)證碼還是不行的,因?yàn)楝F(xiàn)在驗(yàn)證碼基本上都是空心型或者是不規(guī)則型的的,Java 是識(shí)別不出來(lái)的,所以接下來(lái)還是需要尋找另一種辦法進(jìn)行識(shí)別。

          作者:不學(xué)無(wú)數(shù)的程序員
          來(lái)源:https://my.oschina.net/u/4030990/blog/4273742

          喜歡就三連


          關(guān)注 Stephen,一起學(xué)習(xí),一起成長(zhǎng)。


          瀏覽 45
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本超碰在线观看 | 免费看又色又爽又黄的成人用品 | 欧美日韩成人一区二区在线观看 | 亚洲AV无码成人精品涩涩麻豆 | 免费一级A片在线播放 |