做驗(yàn)證碼圖片的識(shí)別,不論是使用傳統(tǒng)的ORC技術(shù),還是使用統(tǒng)計(jì)機(jī)器學(xué)習(xí)或者是使用深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),都少不了從網(wǎng)絡(luò)上采集大量相關(guān)的驗(yàn)證碼圖片做數(shù)據(jù)集樣本來(lái)進(jìn)行訓(xùn)練。
創(chuàng)新互聯(lián)公司2013年至今,先為華龍等服務(wù)建站,華龍等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為華龍企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。采集驗(yàn)證碼圖片,可以直接使用Python進(jìn)行批量下載,下載完之后,就需要對(duì)下載下來(lái)的驗(yàn)證碼圖片進(jìn)行標(biāo)注。一般情況下,一個(gè)驗(yàn)證碼圖片的文件名就是圖片中驗(yàn)證碼的實(shí)際字符串。
在不借助工具的情況下,我們對(duì)驗(yàn)證碼圖片進(jìn)行上述標(biāo)注的流程是:
1、打開圖片所在的文件夾;
2、選擇一個(gè)圖片;
3、鼠標(biāo)右鍵重命名;
4、輸入正確的字符串;
5、保存
州的先生親身體驗(yàn),一個(gè)驗(yàn)證碼完成數(shù)據(jù)的標(biāo)注,大概需要10到20秒。大量的時(shí)間浪費(fèi)在了重復(fù)地進(jìn)行鼠標(biāo)右鍵重命名操作了。于是,使用Qt的Python封裝包——PyQt5,編寫了一個(gè)小工具,方便進(jìn)行驗(yàn)證碼圖片的數(shù)據(jù)標(biāo)注,節(jié)省時(shí)間,珍惜生命。
程序的運(yùn)行如下動(dòng)圖所示:
下面我們來(lái)了解一下如何編寫這個(gè)驗(yàn)證碼圖片數(shù)據(jù)標(biāo)注程序。
首先,我們來(lái)構(gòu)建一個(gè)圖形界面。這個(gè)圖形界面里面包含了一個(gè)圖像展示控件、一個(gè)文本輸入控件、四個(gè)按鈕控件?;诖耍覀冞x擇三個(gè)布局來(lái)排列圖形界面的布局。圖形界面窗口中的核心控件是一個(gè)QWidget(),其布局層設(shè)置為網(wǎng)格布局QGridLayout()。在其中放置三個(gè)控件:圖像展示控件QWidget()、文本輸入控件QLineText()、四個(gè)按鈕組QWidget()。
同時(shí),圖像展示控件QWidget()用水平布局層QHBoxLayout()包含一個(gè)QLabel()標(biāo)簽來(lái)占位;按鈕組控件QWidget()用一個(gè)垂直布局層QVBoxLayout()將4個(gè)按鈕控件QPushButton()添加進(jìn)去。最后,代碼如下所示:
class ImgTag(QtWidgets.QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("驗(yàn)證碼圖片標(biāo)注 州的先生 zmister.com") # 主控件和主控件布局 self.main_widget = QtWidgets.QWidget() self.main_layout = QtWidgets.QGridLayout() self.main_widget.setLayout(self.main_layout) # 圖像展示控件 self.img_widget = QtWidgets.QWidget() self.img_layout = QtWidgets.QHBoxLayout() self.img_widget.setLayout(self.img_layout) # 標(biāo)簽占位 self.img_view = QtWidgets.QLabel("請(qǐng)選擇一個(gè)文件夾!") self.img_view.setAlignment(QtCore.Qt.AlignCenter) self.img_layout.addWidget(self.img_view) # 圖像標(biāo)注控件 self.img_input = QtWidgets.QLineEdit() # 控制按鈕控件 self.opera_widget = QtWidgets.QWidget() self.opera_layout = QtWidgets.QVBoxLayout() self.opera_widget.setLayout(self.opera_layout) # 各個(gè)按鈕 self.select_img_btn = QtWidgets.QPushButton("選擇目錄") self.previous_img_btn = QtWidgets.QPushButton("上一張") self.previous_img_btn.setEnabled(False) self.next_img_btn = QtWidgets.QPushButton("下一張") self.next_img_btn.setEnabled(False) self.save_img_btn = QtWidgets.QPushButton("保存") self.save_img_btn.setEnabled(False) # 添加按鈕到布局 self.opera_layout.addWidget(self.select_img_btn) self.opera_layout.addWidget(self.previous_img_btn) self.opera_layout.addWidget(self.next_img_btn) self.opera_layout.addWidget(self.save_img_btn) # 將控件添加到主控件布局層 self.main_layout.addWidget(self.img_widget,0,0,4,4) self.main_layout.addWidget(self.opera_widget,0,4,5,1) self.main_layout.addWidget(self.img_input,4,0,1,4) # 狀態(tài)欄 self.img_total_current_label = QtWidgets.QLabel() self.img_total_label = QtWidgets.QLabel() self.statusBar().addPermanentWidget(self.img_total_current_label) self.statusBar().addPermanentWidget(self.img_total_label, stretch=0) # 在狀態(tài)欄添加永久控件 # 設(shè)置UI界面核心控件 self.setCentralWidget(self.main_widget)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)題目:Python編寫一個(gè)驗(yàn)證碼圖片數(shù)據(jù)標(biāo)注GUI程序附源碼-創(chuàng)新互聯(lián)
標(biāo)題URL:http://jinyejixie.com/article36/hgdsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站維護(hù)、外貿(mào)建站、網(wǎng)站排名、品牌網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容