成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python項(xiàng)目實(shí)戰(zhàn)篇之常用驗(yàn)證碼標(biāo)注&識(shí)別(數(shù)據(jù)采集/預(yù)處理/字符圖切割)

開(kāi)發(fā) 后端
數(shù)據(jù)采集:根據(jù)圖片驗(yàn)證碼鏈接進(jìn)行批量下載圖片,最開(kāi)始時(shí)下載個(gè)20張先進(jìn)行手動(dòng)改文件名進(jìn)行標(biāo)注,下載這塊代碼編寫(xiě)不難,這里不貼代碼了,見(jiàn)image_download.py文件。

[[423249]]

大家好,我是Snowball。

一、前言

上一篇文章小編給大家講解了需求分析和實(shí)現(xiàn)思路,Python項(xiàng)目實(shí)戰(zhàn)篇——常用驗(yàn)證碼標(biāo)注和識(shí)別(需求分析和實(shí)現(xiàn)思路),這篇文章繼續(xù)沿著上一篇文章的內(nèi)容,給大家講解下數(shù)據(jù)采集/預(yù)處理/字符圖切割內(nèi)容。

二、數(shù)據(jù)采集

數(shù)據(jù)采集:根據(jù)圖片驗(yàn)證碼鏈接進(jìn)行批量下載圖片,最開(kāi)始時(shí)下載個(gè)20張先進(jìn)行手動(dòng)改文件名進(jìn)行標(biāo)注,下載這塊代碼編寫(xiě)不難,這里不貼代碼了,見(jiàn)image_download.py文件。

三、預(yù)處理

預(yù)處理:根據(jù)需求分析中的字符切割描述,針對(duì)筆者的圖片驗(yàn)證碼案例情況,需要先進(jìn)行常規(guī)驗(yàn)證碼圖片預(yù)處理,預(yù)處理通過(guò)OpenCV庫(kù)實(shí)現(xiàn),處理過(guò)程為:

  1. 原始圖->灰度圖->中值濾波->二值化->輪廓檢測(cè)繪制(部分情況才可以加)->字符切割填充 

大概過(guò)程功能簡(jiǎn)單描述如下,詳細(xì)原理可以參考OpenCV相關(guān)文章和視頻,引用鏈接:

  1. [3.OpenCV文章專(zhuān)欄](https://blog.csdn.net/yukinoai/category_9283880.html) 
  2. [4.OpenCV-Python視頻](https://www.bilibili.com/video/BV1tb4y1C7j7) 

原始圖(RGB)轉(zhuǎn)灰度圖:去除顏色信息,減少圖片大小,單通道值方便濾波處理。讀者可以腦洞一下,不去除顏色信息,能提取到指定字符顏色的輪廓嗎?

灰度圖中值濾波:進(jìn)行噪音去除,取中間像素平均值

二值化:只留下0、255二種值,方便輪廓檢測(cè)

輪廓檢測(cè):這一步主要用于提取字符輪廓矩形坐標(biāo),不適合字符挨得特別緊的情況

字符切割填充:根據(jù)生成的字符輪廓圖片矩形坐標(biāo)進(jìn)行切割再填充對(duì)齊到指定寬高

具體執(zhí)行效果如下:

下面是預(yù)處理過(guò)程部分核心代碼,詳細(xì)代碼見(jiàn)image_split.py文件。

  1. def pre_process_image(img, file_name): 
  2.     # 去除邊緣 
  3.     img = img[2:-2, 2:-2] 
  4.     # print(img.shape) 
  5.  
  6.     #得到灰度圖 
  7.     gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
  8.     # show("gray", gray) 
  9.  
  10.     #去除噪音 
  11.     blur = cv2.medianBlur(gray, 3) 
  12.     # show("blur", blur) 
  13.  
  14.     temp = gray.mean().item() 
  15.     #二值化 
  16.     ret, threshold = cv2.threshold(blur, temp, 255, cv2.THRESH_BINARY) 
  17.     # show("threshold", threshold) 
  18.  
  19.     #保存二值化圖片 
  20.     if IS_SAVE_FILE: 
  21.         cv2.imwrite(DST_IMG_DIR + file_name + "_threshold.png", threshold) 
  22.     return threshold 

執(zhí)行圖片預(yù)處理程序后具體效果圖1-3如下:

輪廓檢測(cè)繪制結(jié)果1:

根據(jù)圖片輪廓進(jìn)行字符切割結(jié)果2:

根據(jù)字符切割圖片進(jìn)行文件分類(lèi)結(jié)果3:

以上就是字符圖片切割的全部過(guò)程了,核心過(guò)程代碼如下:

  1. def split_image(file_path): 
  2.     file_name = get_file_name(file_path) 
  3.     img = read_image(file_path) 
  4.  
  5.     #驗(yàn)證碼預(yù)處理 
  6.     threshold = pre_process_image(img, file_name) 
  7.  
  8.     #查找輪廓邊界列表 
  9.     contours = find_counters(threshold) 
  10.  
  11.     #過(guò)濾合適的輪廓矩形列表 
  12.     rect_list,result_rect = get_filter_rect(contours, img, file_name) 
  13.  
  14.     #分割矩形圖片 
  15.     return split_rect_img(file_path, threshold, rect_list, result_rect) 

詳細(xì)代碼可以閱讀源碼,這里說(shuō)一下這個(gè)過(guò)程中筆者編寫(xiě)預(yù)處理代碼遇到的幾個(gè)問(wèn)題:

  1. 部分圖片輪廓檢測(cè)可以檢測(cè)到多個(gè)輪廓,部分圖片只有1-2個(gè)輪廓,部分可能一個(gè)輪廓都沒(méi)有,這里代碼進(jìn)行了相應(yīng)的調(diào)整處理,比如過(guò)濾大的外部輪廓和較小的內(nèi)部輪廓,根據(jù)剩下的輪廓進(jìn)行坐標(biāo)排序,根據(jù)部分坐標(biāo)得到所有字符輪廓
  2. 得到4個(gè)字符輪廓圖片后,每個(gè)圖片大小不一致,需要進(jìn)行大小補(bǔ)齊,這個(gè)寬高參數(shù)需要根據(jù)數(shù)據(jù)集進(jìn)行調(diào)整

以上就是數(shù)據(jù)采集/預(yù)處理的實(shí)現(xiàn)過(guò)程了,這里稍微說(shuō)下學(xué)習(xí)OpenCV相關(guān)知識(shí)過(guò)程的情況,筆者是采用文章+視頻間斷性學(xué)習(xí),大概是20-40個(gè)小時(shí)左右,然后再開(kāi)始寫(xiě)具體字符圖片切割的代碼,讀者可根據(jù)自己的時(shí)間安排學(xué)習(xí)速度,建議工具類(lèi)的東西是快速學(xué)習(xí),現(xiàn)學(xué)現(xiàn)用。好的,接下來(lái)介紹高效率、可復(fù)用的通用圖片驗(yàn)證碼數(shù)據(jù)標(biāo)注功能實(shí)現(xiàn)。

四、總結(jié)

我是Snowball。上一篇文章給大家分享了,Python項(xiàng)目實(shí)戰(zhàn)篇——常用驗(yàn)證碼標(biāo)注和識(shí)別(需求分析和實(shí)現(xiàn)思路),這篇內(nèi)容主要講解了常用驗(yàn)證碼標(biāo)注&識(shí)別的數(shù)據(jù)采集/預(yù)處理的實(shí)現(xiàn)過(guò)程。下一篇文章,小編給大家介紹高效率、可復(fù)用的通用圖片驗(yàn)證碼數(shù)據(jù)標(biāo)注功能實(shí)現(xiàn)。

 

小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過(guò)程中,有遇到任何問(wèn)題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。

 

責(zé)任編輯:武曉燕 來(lái)源: Python爬蟲(chóng)與數(shù)據(jù)挖掘
相關(guān)推薦

2021-09-09 08:55:50

Python項(xiàng)目驗(yàn)證碼

2021-09-16 07:52:18

Python項(xiàng)目實(shí)戰(zhàn)

2021-09-18 09:15:39

Python神經(jīng)網(wǎng)絡(luò)Python基礎(chǔ)

2013-06-19 10:19:59

2024-01-29 08:32:10

Python驗(yàn)證碼識(shí)別

2020-12-29 05:33:03

Serverless驗(yàn)證碼架構(gòu)

2016-11-08 19:19:06

2016-11-03 13:33:31

2019-05-21 14:33:01

2023-10-27 08:53:13

Python驗(yàn)證碼圖片識(shí)別

2022-02-17 10:34:21

神經(jīng)網(wǎng)絡(luò)識(shí)別驗(yàn)證碼

2016-11-14 15:40:01

Android

2021-02-04 10:08:34

騰訊云驗(yàn)證碼醫(yī)療影像

2022-05-11 07:41:31

Python驗(yàn)證碼

2021-06-16 06:58:09

TensorFlow識(shí)別驗(yàn)證碼

2021-07-22 10:25:07

JS驗(yàn)證碼前端

2014-04-24 10:09:05

驗(yàn)證碼C#

2025-03-07 08:00:00

數(shù)據(jù)數(shù)據(jù)集集神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)預(yù)處理

2016-12-20 16:07:13

Python數(shù)據(jù)預(yù)處理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品国产18久久久久久二百 | 国产一区二区av | 日本人麻豆 | 国产精品美女www爽爽爽 | 国产精品久久久久久久久久久久久久 | 欧美精品综合 | 日韩毛片在线观看 | 美女久久视频 | 国产午夜精品理论片a大结局 | 国产一区二区三区 | 四虎精品在线 | a级片在线观看 | 国产不卡视频在线 | 欧美激情国产日韩精品一区18 | 欧美一区二区免费 | 久www | 欧美午夜影院 | 欧美在线视频a | 亚洲一一在线 | 国产精品99久久久久久动医院 | 久草a√ | 成人国产精品免费观看 | 国产精品福利网站 | 欧美在线一级 | 久久综合久久综合久久综合 | 午夜欧美一区二区三区在线播放 | www.日本三级 | 日日日日日日bbbbb视频 | 激情久久av一区av二区av三区 | 欧美一区视频在线 | 三级黄色网址 | 久久久久久精 | 97视频精品 | 国产成人久久av免费高清密臂 | 日日干夜夜操 | 天天干狠狠操 | 久久久久久久网 | 久久精品日产第一区二区三区 | 日韩欧美成人精品 | 亚洲成网 | 亚洲精品一区二区三区在线观看 |