如何利用python檢測圖片是否包含二維碼
前言
因?yàn)橐恢痹趲讉€(gè)平臺(tái)發(fā)文章,發(fā)現(xiàn)有些平臺(tái)并不會(huì)檢測文章中的圖片是否會(huì)包含二維碼,但是其中也有平臺(tái)會(huì)去檢測,所以就去研究了一下python如何去檢測。搜了一下大概有兩個(gè)庫可以使用:
- 一個(gè)是zbar,這個(gè)庫是挺牛的,不過只支持python2.7,再者也沒有繼續(xù)維護(hù),什么年代了,應(yīng)該沒人使用python2.7了吧(2020年1月以后連python2.7都不再維護(hù)了,有還在使用的童靴該跟上時(shí)代了)。
- 一個(gè)是pyzbar,基本上傳承了zbar的功能。
安裝
pip install pyzbar -i http://pypi.douban.com/simple --trusted-host pypi.douban.com pip install Pillow
測試
準(zhǔn)備圖片
首先去二維碼生成網(wǎng)站準(zhǔn)備一堆二維碼作為測試準(zhǔn)備,我準(zhǔn)備了一些圖片,也有不包含二維碼的。

代碼
使用方法如下圖,圖片使用Pillow庫打開,再用pyzbar的decode解碼,代碼如下:
import pyzbar.pyzbar as pyzbar
from PIL import Image,ImageEnhance
import os
img_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_list
def 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)#增加對比度
# 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()
注釋掉的代碼可以在圖片識別率低的情況下打開,以此提高圖片亮度。
運(yùn)行結(jié)果

都能正確識別出來,效果還是可以的。
以上就是如何利用python檢測圖片是否包含二維碼的詳細(xì)內(nèi)容,更多關(guān)于python 二維碼的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python3中多線程編程的隊(duì)列運(yùn)作示例
這篇文章主要介紹了Python3中多線程編程的隊(duì)列運(yùn)作示例,文中用一個(gè)簡單的例子展示了Python下嘗試多線程時(shí)隊(duì)列的進(jìn)站出站是如何運(yùn)作的,需要的朋友可以參考下2015-04-04
使用Python和python-pptx構(gòu)建Markdown到PowerPoint轉(zhuǎn)換器
在這篇博客中,我們將深入分析一個(gè)使用 Python 開發(fā)的應(yīng)用程序,該程序可以將 Markdown 文件轉(zhuǎn)換為 PowerPoint 演示文稿,我們將探討代碼結(jié)構(gòu)、功能和關(guān)鍵組件,并解決一個(gè)特定的 bug,需要的朋友可以參考下2025-03-03
Pyqt5?Designer構(gòu)建桌面應(yīng)用設(shè)計(jì)及實(shí)現(xiàn)代碼
這篇文章主要為大家介紹了Pyqt5?Designer構(gòu)建桌面應(yīng)用設(shè)計(jì)及實(shí)現(xiàn)代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Python利用pywin32實(shí)現(xiàn)自動(dòng)操作電腦
在windows系統(tǒng)上,重復(fù)性的操作可以用Python腳本來完成,其中常用的模塊是win32gui、win32con、win32api,要使用這三個(gè)模塊需要先安裝pywin32。本文就為大家介紹了如何利用這些模塊實(shí)現(xiàn)自動(dòng)操作電腦,感興趣的可以了解一下2022-11-11
Python實(shí)現(xiàn)FTP弱口令掃描器的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)FTP弱口令掃描器的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01
基于Python函數(shù)的作用域規(guī)則和閉包(詳解)
下面小編就為大家分享一篇基于Python函數(shù)的作用域規(guī)則和閉包詳解,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11

