最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python 對驗證碼圖片進行降噪處理

 更新時間:2019年12月18日 09:43:51   作者:大蛇王  
今天小編就為大家分享一篇使用python 對驗證碼圖片進行降噪處理,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

首先貼一張驗證碼上來做案例:

第一步先通過二值化處理把干擾線去掉:

from PIL import Image
 
# 二值化處理
def two_value():
  for i in range(1,5):
    # 打開文件夾中的圖片
    image=Image.open('./Img/'+str(i)+'.jpg')
    # 灰度圖
    lim=image.convert('L')
    # 灰度閾值設為165,低于這個值的點全部填白色
    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()

運行結果圖如下:

然后對黑白圖片進行降噪,去掉那些單獨的黑色像素點:

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] # 中央像素點像素值
    if mid_pixel <50: # 找出上下左右四個方向像素點像素值
      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)]
 
      # 判斷上下左右的黑色像素點總個數
      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')

運行結果如下圖所示:

最后對邊框上附著的黑色像素點進行消除:

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')

運行結果:

以上這篇使用python 對驗證碼圖片進行降噪處理就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解Python中where()函數的用法

    詳解Python中where()函數的用法

    本篇文章主要介紹了詳解Python中where()函數的用法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Python?PaddleNLP開源實現快遞單信息抽取

    Python?PaddleNLP開源實現快遞單信息抽取

    這篇文章主要為大家介紹了Python?PaddleNLP開源項目實現對快遞單信息抽取,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Django 開發(fā)調試工具 Django-debug-toolbar使用詳解

    Django 開發(fā)調試工具 Django-debug-toolbar使用詳解

    這篇文章主要介紹了Django 開發(fā)調試工具 Django-debug-toolbar使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • tkinter如何實現打開文件對話框并獲取文件絕對路徑

    tkinter如何實現打開文件對話框并獲取文件絕對路徑

    這篇文章主要介紹了tkinter實現打開文件對話框并獲取文件絕對路徑問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Python中*args和**kwargs的作用

    Python中*args和**kwargs的作用

    *args和**kwargs,以及單獨的*,**到底是啥作用呢?原理是啥呢?讀完這篇文章你就徹底明白了,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • python?numpy?中l(wèi)inspace函數示例詳解

    python?numpy?中l(wèi)inspace函數示例詳解

    這篇文章主要介紹了python?numpy?中l(wèi)inspace函數,本文我們通過示例學習了linspace函數,如果你熟悉NumPy,一定也注意到還有np.arange函數,兩者最大差異是,linspace能夠精確控制終止值終值,而arange能夠更直接地控制序列中值之間的增量,需要的朋友可以參考下
    2023-03-03
  • 在pandas中遍歷DataFrame行的實現方法

    在pandas中遍歷DataFrame行的實現方法

    這篇文章主要介紹了在pandas中遍歷DataFrame行的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • python基礎之裝飾器詳解

    python基礎之裝飾器詳解

    這篇文章主要介紹了python基礎之裝飾器詳解,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-04-04
  • python使用sqlite3時游標使用方法

    python使用sqlite3時游標使用方法

    這篇文章主要為大家詳細介紹了python使用sqlite3時游標的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 在Python程序中操作文件之flush()方法的使用教程

    在Python程序中操作文件之flush()方法的使用教程

    這篇文章主要介紹了在Python程序中操作文件之flush()方法的使用教程,是Python入門學習中的基礎知識,需要的朋友可以參考下
    2015-05-05

最新評論

绍兴县| 陕西省| 韶山市| 和林格尔县| 陆良县| 女性| 西丰县| 宜良县| 永昌县| 菏泽市| 湖州市| 大英县| 靖宇县| 饶平县| 科尔| 朝阳区| 竹溪县| 崇州市| 龙州县| 和田市| 灵石县| 屏边| 民丰县| 皋兰县| 阿图什市| 永济市| 聊城市| 广宗县| 武功县| 通渭县| 阿瓦提县| 兴和县| 兴义市| 庆元县| 舟曲县| 容城县| 巴彦淖尔市| 昭通市| 静乐县| 长海县| 临沧市|