使用python 對(duì)驗(yàn)證碼圖片進(jìn)行降噪處理
首先貼一張驗(yàn)證碼上來(lái)做案例:

第一步先通過(guò)二值化處理把干擾線去掉:
from PIL import Image
# 二值化處理
def two_value():
for i in range(1,5):
# 打開(kāi)文件夾中的圖片
image=Image.open('./Img/'+str(i)+'.jpg')
# 灰度圖
lim=image.convert('L')
# 灰度閾值設(shè)為165,低于這個(gè)值的點(diǎn)全部填白色
threshold=165
table=[]
for j in range(256):
if j<threshold:
table.append(0)
else:
table.append(1)
bim=lim.point(table,'1')
bim.save('./Img2/'+str(i)+'.jpg')
two_value()
運(yùn)行結(jié)果圖如下:

然后對(duì)黑白圖片進(jìn)行降噪,去掉那些單獨(dú)的黑色像素點(diǎn):
from PIL import Image
# 去除干擾線
im = Image.open('./Img2/1.jpg')
# 圖像二值化
data = im.getdata()
w,h = im.size
black_point = 0
for x in range(1,w-1):
for y in range(1,h-1):
mid_pixel = data[w*y+x] # 中央像素點(diǎn)像素值
if mid_pixel <50: # 找出上下左右四個(gè)方向像素點(diǎn)像素值
top_pixel = data[w*(y-1)+x]
left_pixel = data[w*y+(x-1)]
down_pixel = data[w*(y+1)+x]
right_pixel = data[w*y+(x+1)]
# 判斷上下左右的黑色像素點(diǎn)總個(gè)數(shù)
if top_pixel <10:
black_point += 1
if left_pixel <10:
black_point += 1
if down_pixel <10:
black_point += 1
if right_pixel <10:
black_point += 1
if black_point <1:
im.putpixel((x,y),255)
# print(black_point)
black_point = 0
im.save('xxxx.jpg')
運(yùn)行結(jié)果如下圖所示:

最后對(duì)邊框上附著的黑色像素點(diǎn)進(jìn)行消除:
from PIL import Image
# 去除干擾線
im = Image.open('./Img2/1.jpg')
# 圖像二值化
data = im.getdata()
w,h = im.size
black_point = 0
for x in range(1,w-1):
for y in range(1,h-1):
if x<2 or y<2 :
im.putpixel((x-1, y-1), 255)
if x>w-3 or y>h-3:
im.putpixel((x+1 , y+1 ), 255)
im.save('xxx.jpg')
運(yùn)行結(jié)果:

以上這篇使用python 對(duì)驗(yàn)證碼圖片進(jìn)行降噪處理就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python工廠模式實(shí)現(xiàn)封裝Webhook群聊機(jī)器人詳解
企業(yè)存在給 特定群組 自動(dòng)推送消息的需求,你可以在群聊中添加一個(gè)自定義機(jī)器人,通過(guò)服務(wù)端調(diào)用 webhook 地址,即可將外部系統(tǒng)的通知消息即時(shí)推送到群聊中。本文就來(lái)和大家聊聊具體實(shí)現(xiàn)方法2023-02-02
python利用re,bs4,requests模塊獲取股票數(shù)據(jù)
這篇文章主要介紹了python利用re,bs4,requests模塊獲取股票數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
裝上這 14 個(gè)插件后,PyCharm 真的是無(wú)敵的存在
這篇文章主要介紹了裝上這 14 個(gè)插件后,PyCharm 真的是無(wú)敵的存在,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
selenium WebDriverWait類(lèi)等待機(jī)制的實(shí)現(xiàn)
這篇文章主要介紹了selenium WebDriverWait類(lèi)等待機(jī)制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
基于Python實(shí)現(xiàn)批量保存視頻到本地
我們刷視頻時(shí)常常會(huì)想把精彩的視頻保存到本地,如果少數(shù)的還行,如果有很多的話一個(gè)個(gè)保存太麻煩了。本文教你如何用Python實(shí)現(xiàn)視頻批量保存到本地,需要的可以參考一下2022-05-05
python函數(shù)參數(shù),名稱空間,以及函數(shù)嵌套
這篇文章主要給大家介紹python函數(shù)參數(shù)、名稱空間、以及函數(shù)嵌套的相關(guān)資料,想具體了解的小伙伴請(qǐng)和小編一起進(jìn)入下面文章內(nèi)容吧2021-10-10
Selenium+Python自動(dòng)化測(cè)試入門(mén)
本文主要介紹了Selenium+Python自動(dòng)化測(cè)試入門(mén),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Python實(shí)現(xiàn)向好友發(fā)送微信消息優(yōu)化篇
利用python可以實(shí)現(xiàn)微信消息發(fā)送功能,怎么實(shí)現(xiàn)呢?你肯定會(huì)想著很復(fù)雜,但是python的好處就是很多人已經(jīng)把接口打包做好了,只需要調(diào)用即可,今天通過(guò)本文給大家分享使用?Python?實(shí)現(xiàn)微信消息發(fā)送的思路代碼,一起看看吧2022-06-06

