中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

給你一個(gè)網(wǎng)站你怎么做的嗎網(wǎng)盤網(wǎng)頁版

給你一個(gè)網(wǎng)站你怎么做的嗎,網(wǎng)盤網(wǎng)頁版,建筑網(wǎng)325,郵箱購(gòu)買網(wǎng)站前言 在測(cè)試過程中,有的時(shí)候登錄需要輸入圖片驗(yàn)證碼。這時(shí)候使用Selenium進(jìn)行自動(dòng)化測(cè)試,怎么做圖片驗(yàn)證碼識(shí)別?本篇內(nèi)容主要介紹使用Selenium、BufferedImage、Tesseract進(jìn)行圖片 驗(yàn)證碼識(shí)別。 環(huán)境準(zhǔn)備 jdk:1.8 tessdata&…

前言

在測(cè)試過程中,有的時(shí)候登錄需要輸入圖片驗(yàn)證碼。這時(shí)候使用Selenium進(jìn)行自動(dòng)化測(cè)試,怎么做圖片驗(yàn)證碼識(shí)別?本篇內(nèi)容主要介紹使用Selenium、BufferedImage、Tesseract進(jìn)行圖片 驗(yàn)證碼識(shí)別。

環(huán)境準(zhǔn)備

jdk:1.8
tessdata:文章末尾附下載地址

安裝Tesseract

我本地是ubuntu系統(tǒng)

sudo apt install tesseract-ocr
sudo apt install libtesseract-dev 

在項(xiàng)目中引用

<dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>4.5.4</version>
</dependency>

實(shí)現(xiàn)

在下圖中,登錄需要使用圖片驗(yàn)證碼進(jìn)行驗(yàn)證。我們的圖片驗(yàn)證碼識(shí)別流程是使用Selenium定位到圖片驗(yàn)證碼元素,將元素截圖保。然后將保存的圖片驗(yàn)證碼使用BufferedImage進(jìn)行灰度化、二值化處理,處理完成后去除圖片上的干擾點(diǎn)。最后使用Tesseract進(jìn)行圖片驗(yàn)證碼上的字符識(shí)別。
在這里插入圖片描述

處理圖片

首先使用BufferedImage讀取圖片驗(yàn)證碼圖片,然后調(diào)整亮度后進(jìn)行灰度化、二值化處理。處理后的圖片去除干擾點(diǎn)。

public static void cleanLinesInImage(File sfile, String destDir)  throws IOException{File destF =new File(destDir);if (!destF.exists()){destF.mkdirs();}BufferedImage bufferedImage = ImageIO.read(sfile);int h = bufferedImage.getHeight();int w = bufferedImage.getWidth();// 灰度化int[][] gray = new int[w][h];for (int x = 0; x < w; x++){for (int y = 0; y < h; y++){int argb = bufferedImage.getRGB(x, y);// 圖像加亮(調(diào)整亮度識(shí)別率非常高)int r = (int) (((argb >> 16) & 0xFF) * 1.1 + 30);int g = (int) (((argb >> 8) & 0xFF) * 1.1 + 30);int b = (int) (((argb >> 0) & 0xFF) * 1.1 + 30);//                int r = (int) (((argb >> 16) & 0xFF) * 0.1 + 30);//                int g = (int) (((argb >> 8) & 0xFF) * 0.1 + 30);//                int b = (int) (((argb >> 0) & 0xFF) * 0.1 + 30);if (r >= 255){r = 255;}if (g >= 255){g = 255;}if (b >= 255){b = 255;}gray[x][y] = (int) Math.pow((Math.pow(r, 2.2) * 0.2973 + Math.pow(g, 2.2)* 0.6274 + Math.pow(b, 2.2) * 0.0753), 1 / 2.2);}}ImageIO.write(bufferedImage, "jpg", new File(destDir, sfile.getName()));// 二值化int threshold = ostu(gray, w, h);BufferedImage binaryBufferedImage = new BufferedImage(w, h, BufferedImage.TYPE_BYTE_BINARY);for (int x = 0; x < w; x++){for (int y = 0; y < h; y++){if (gray[x][y] > threshold){gray[x][y] |= 0x00FFFF;} else{gray[x][y] &= 0xFF0000;}binaryBufferedImage.setRGB(x, y, gray[x][y]);}}ImageIO.write(binaryBufferedImage, "jpg", new File(destDir, sfile.getName()));//        去除干擾線條for(int y = 1; y < h-1; y++){for(int x = 1; x < w-1; x++){boolean flag = false ;if(isBlack(binaryBufferedImage.getRGB(x, y))){//左右均為空時(shí),去掉此點(diǎn)if(isWhite(binaryBufferedImage.getRGB(x-1, y)) && isWhite(binaryBufferedImage.getRGB(x+1, y))){flag = true;}//上下均為空時(shí),去掉此點(diǎn)if(isWhite(binaryBufferedImage.getRGB(x, y+1)) && isWhite(binaryBufferedImage.getRGB(x, y-1))){flag = true;}//斜上下為空時(shí),去掉此點(diǎn)if(isWhite(binaryBufferedImage.getRGB(x-1, y+1)) && isWhite(binaryBufferedImage.getRGB(x+1, y-1))){flag = true;}if(isWhite(binaryBufferedImage.getRGB(x+1, y+1)) && isWhite(binaryBufferedImage.getRGB(x-1, y-1))){flag = true;}if(flag){binaryBufferedImage.setRGB(x,y,-1);}}}}// 矩陣打印//        for (int y = 0; y < h; y++)//        {//            for (int x = 0; x < w; x++)//            {//                if (isBlack(binaryBufferedImage.getRGB(x, y)))//                {//                    System.out.print("*");//                } else//                {//                    System.out.print(" ");//                }//            }//            System.out.println();//        }ImageIO.write(binaryBufferedImage, "jpg", new File(destDir, sfile.getName()));}

OCR識(shí)別

setDataPath方法,傳入你下載的

public static String executeTess4J(String imgUrl){String ocrResult = "";try{ITesseract instance = new Tesseract();instance.setDatapath("your tessdata path");instance.setLanguage("eng");instance.setOcrEngineMode(0);instance.setTessVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890");File imgDir = new File(imgUrl);//long startTime = System.currentTimeMillis();ocrResult = instance.doOCR(imgDir);}catch (TesseractException e){e.printStackTrace();}return ocrResult;
}

驗(yàn)證

編寫Selenium腳本

public static void main(String[] args) throws IOException {System.setProperty("webdriver.chrome.driver", "/home/zhangkexin/chromedriver");WebDriver driver = new ChromeDriver();driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);driver.get("https://xkczb.jtw.beijing.gov.cn/#");WebElement element = driver.findElement(By.xpath("//*[@id=\"getValidCode\"]/img"));File img = element.getScreenshotAs(OutputType.FILE);String path = System.getProperty("user.dir");cleanLinesInImage(img, path);String imgFile = path  + "/" + img.getName();Path source = Paths.get(imgFile);Path dest =  Paths.get("/home/zhangkexin/ui-test/autoTest/img.jpg");Files.copy(source, dest, StandardCopyOption.REPLACE_EXISTING);String code = executeTess4J("/home/zhangkexin/ui-test/autoTest/img.jpg");System.out.println(code);driver.quit();
}

看一下經(jīng)過處理后的圖片驗(yàn)證碼
在這里插入圖片描述
最后實(shí)際識(shí)別出來的結(jié)果。
在這里插入圖片描述
testdata:
鏈接:https://pan.baidu.com/s/1uJE9wl1oa2WAsBTsydUlmg?pwd=m576?
提取碼:m576

http://www.risenshineclean.com/news/36012.html

相關(guān)文章:

  • 深圳建設(shè)網(wǎng)站制作公司訊展網(wǎng)站優(yōu)化推廣
  • 網(wǎng)站制作的基本步驟診斷網(wǎng)站seo現(xiàn)狀的方法
  • 蕪湖建設(shè)工程質(zhì)量監(jiān)督站網(wǎng)站福建seo快速排名優(yōu)化
  • 網(wǎng)站建設(shè)用啥技術(shù)新聞?lì)^條 今天
  • 怎么下載wordpress內(nèi)置的主題廣州seo公司如何
  • 源代碼如何做網(wǎng)站百度移動(dòng)端點(diǎn)贊排名軟件
  • ps6做網(wǎng)站點(diǎn)哪里保存seo最新
  • 成都三合一網(wǎng)站建設(shè)推廣新產(chǎn)品最好的方法
  • 武漢哪里做網(wǎng)站好找個(gè)免費(fèi)的網(wǎng)站
  • 提供網(wǎng)站制作百度風(fēng)云排行榜官網(wǎng)
  • 網(wǎng)站建設(shè)公司該怎么銷售微信推廣方法
  • 上海企業(yè)招聘信息發(fā)布平臺(tái)長(zhǎng)沙seo優(yōu)化推薦
  • 網(wǎng)站建設(shè)原因分析win7系統(tǒng)優(yōu)化軟件
  • 中國(guó)新聞社招聘2023年褲子seo關(guān)鍵詞
  • 中國(guó)最近軍事新聞視頻桂林網(wǎng)站優(yōu)化
  • 網(wǎng)站推廣解釋中國(guó)有幾個(gè)搜索引擎
  • 網(wǎng)站廣告輪播代碼運(yùn)營(yíng)是做什么的
  • 邀請(qǐng)注冊(cè)推廣賺錢seo深圳優(yōu)化
  • 如何在記事本中做網(wǎng)站鏈接長(zhǎng)沙自動(dòng)seo
  • 黃石建設(shè)信息網(wǎng)站國(guó)內(nèi)網(wǎng)絡(luò)銷售平臺(tái)有哪些
  • 公司網(wǎng)站建設(shè)開發(fā)濟(jì)南興田德潤(rùn)優(yōu)惠嗎推廣平臺(tái)排行榜app
  • 行業(yè)網(wǎng)站建設(shè)費(fèi)用百度seo推廣軟件
  • 公司 做網(wǎng)站推廣信息發(fā)布平臺(tái)
  • 做網(wǎng)站是什么專業(yè)什么工作百度后臺(tái)推廣登錄
  • 做pc端網(wǎng)站要成本么廣告推廣軟件
  • wordpress loading優(yōu)化
  • wordpress手機(jī)版怎么注冊(cè)seo站
  • 做設(shè)計(jì)排版除了昵圖網(wǎng)還有什么網(wǎng)站中國(guó)新冠疫情最新消息
  • 專業(yè)做網(wǎng)站杭州網(wǎng)站推廣平臺(tái)
  • 東營(yíng)本地網(wǎng)站制作公司品牌策劃與推廣方案