如何利用python檢測(cè)圖片是否包含二維碼
前言
因?yàn)橐恢痹趲讉€(gè)平臺(tái)發(fā)文章,發(fā)現(xiàn)有些平臺(tái)并不會(huì)檢測(cè)文章中的圖片是否會(huì)包含二維碼,但是其中也有平臺(tái)會(huì)去檢測(cè),所以就去研究了一下python如何去檢測(cè)。搜了一下大概有兩個(gè)庫(kù)可以使用:
一個(gè)是zbar,這個(gè)庫(kù)是挺牛的,不過(guò)只支持python2.7,再者也沒(méi)有繼續(xù)維護(hù),什么年代了,應(yīng)該沒(méi)人使用python2.7了吧(2020年1月以后連python2.7都不再維護(hù)了,有還在使用的童靴該跟上時(shí)代了)。 一個(gè)是pyzbar,基本上傳承了zbar的功能。安裝
pip install pyzbar -i http://pypi.douban.com/simple --trusted-host pypi.douban.compip install Pillow
測(cè)試
準(zhǔn)備圖片
首先去二維碼生成網(wǎng)站準(zhǔn)備一堆二維碼作為測(cè)試準(zhǔn)備,我準(zhǔn)備了一些圖片,也有不包含二維碼的。
代碼
使用方法如下圖,圖片使用Pillow庫(kù)打開(kāi),再用pyzbar的decode解碼,代碼如下:
import pyzbar.pyzbar as pyzbarfrom PIL import Image,ImageEnhanceimport osimg_dir = '..img'def open_img(): img_list = [] for _,_,file_list in os.walk(img_dir): img_list = [os.path.join(img_dir,file) for file in file_list if file.endswith('.jpg') or file.endswith('.png') ] print('所有文件:{}'.format(img_list)) return img_listdef show(): img_list = open_img() for _img in img_list: img = Image.open(_img) # img = ImageEnhance.Brightness(img).enhance(2.0)#增加亮度 # img = ImageEnhance.Sharpness(img).enhance(17.0)#銳利化 # img = ImageEnhance.Contrast(img).enhance(4.0)#增加對(duì)比度 # img = img.convert(’L’)#灰度化 texts = pyzbar.decode(img) if not texts: print('{}文件不存在二維碼'.format(_img)) for text in texts: t = text.data.decode('utf-8') if t:print('{}文件存在二維碼,內(nèi)容為:{}'.format(_img,t))if __name__ == ’__main__’: show()
注釋掉的代碼可以在圖片識(shí)別率低的情況下打開(kāi),以此提高圖片亮度。
運(yùn)行結(jié)果
都能正確識(shí)別出來(lái),效果還是可以的。
以上就是如何利用python檢測(cè)圖片是否包含二維碼的詳細(xì)內(nèi)容,更多關(guān)于python 二維碼的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. React+umi+typeScript創(chuàng)建項(xiàng)目的過(guò)程2. ASP中常用的22個(gè)FSO文件操作函數(shù)整理3. ASP編碼必備的8條原則4. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp5. 三個(gè)不常見(jiàn)的 HTML5 實(shí)用新特性簡(jiǎn)介6. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報(bào)錯(cuò)問(wèn)題分析7. SharePoint Server 2019新特性介紹8. 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁(yè)9. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過(guò)程解析10. php測(cè)試程序運(yùn)行速度和頁(yè)面執(zhí)行速度的代碼
