溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用python怎么對驗證碼進行降噪

發(fā)布時間:2021-04-06 17:15:32 來源:億速云 閱讀:236 作者:Leah 欄目:開發(fā)技術

今天就跟大家聊聊有關使用python怎么對驗證碼進行降噪,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

圖像灰度化處理

import cv2 
import numpy as np
img = cv2.imread('./picture/1.jpg')

#將圖片灰度化處理,降維,加權進行灰度化c
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('min_gray',gray)

cv2.waitKey(0)

cv2.destroyAllWindows()

效果:

使用python怎么對驗證碼進行降噪

圖像二值化處理

t,gray2 = cv2.threshold(gray,220,255,cv2.THRESH_BINARY)
cv2.imshow('threshold',gray2)

cv2.waitKey(0)

cv2.destroyAllWindows()

效果:

使用python怎么對驗證碼進行降噪

8領域過濾

def remove_noise(img,k=4):
  
  img2 = img.copy()
  
#   img處理數據,k過濾條件
  w,h = img2.shape
  def get_neighbors(img3,r,c):
    count = 0
    for i in [r-1,r,r+1]:
      for j in [c-1,c,c+1]:
        if img3[i,j] > 10:#純白色
          count+=1
    return count
#   兩層for循環(huán)判斷所有的點
  for x in range(w):
    for y in range(h):
      if x == 0 or y == 0 or x == w -1 or y == h -1:
        img2[x,y] = 255
      else:
        n = get_neighbors(img2,x,y)#獲取鄰居數量,純白色的鄰居
        if n > k:
          img2[x,y] = 255
  return img2
result = remove_noise(gray2)
cv2.imshow('8neighbors',result)

cv2.waitKey(0)

cv2.destroyAllWindows()

過濾后的效果:

使用python怎么對驗證碼進行降噪

代碼整合:

import cv2 
import numpy as np
img = cv2.imread('./picture/1.jpg')

#將圖片灰度化處理,降維,加權進行灰度化c
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
t,gray2 = cv2.threshold(gray,200,255,cv2.THRESH_BINARY)
cv2.imshow('threshold',gray2)
result = remove_noise(gray2)
cv2.imshow('8neighbors',result)

cv2.waitKey(0)

cv2.destroyAllWindows()

看完上述內容,你們對使用python怎么對驗證碼進行降噪有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI