1. 程式人生 > 程式設計 >python cv2在驗證碼識別中應用例項解析

python cv2在驗證碼識別中應用例項解析

這篇文章主要介紹了python cv2在驗證碼識別中應用例項解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

使用函式cv2.imread(filepath,flags)讀入一副圖片

filepath:要讀入圖片的完整路徑

flags:讀入圖片的標誌

  • cv2.IMREAD_COLOR:預設引數,讀入一副彩色圖片,忽略alpha通道
  • cv2.IMREAD_GRAYSCALE:讀入灰度圖片
  • cv2.IMREAD_UNCHANGED:顧名思義,讀入完整圖片,包括alpha通道
  • cv2.cvtColor(p1,p2) 是顏色空間轉換函式,p1是需要轉換的圖片,p2是轉換成何種格式。
  • cv2.COLOR_BGR2RGB 將BGR格式轉換成RGB格式
  • cv2.COLOR_BGR2GRAY 將BGR格式轉換成灰度圖片

模版匹配

模板匹配的原理其實很簡單,就是不斷地在原圖中移動模板影象去比較

有6種匹配方法

  • 平方差匹配CV_TM_SQDIFF:用兩者的平方差來匹配,最好的匹配值為0
  • 歸一化平方差匹配CV_TM_SQDIFF_NORMED
  • 相關匹配CV_TM_CCORR:用兩者的乘積匹配,數值越大表明匹配程度越好
  • 歸一化相關匹配CV_TM_CCORR_NORMED
  • 相關係數匹配CV_TM_CCOEFF:用兩者的相關係數匹配,1表示完美的匹配,-1表示最差的匹配
  • 歸一化相關係數匹配CV_TM_CCOEFF_NORMED
  import cv2
  def findpic(self,target='background.png',template='slider.png'):
    """
    :param target: 背景圖路徑
    :param template: 滑塊圖片路徑
    :return: 
    """
    target_rgb = cv2.imread(target)
    target_gray = cv2.cvtColor(target_rgb,cv2.COLOR_BGR2GRAY)
    template_rgb = cv2.imread(template,0)
    res = cv2.matchTemplate(target_gray,template_rgb,cv2.TM_CCOEFF_NORMED) #模板匹配,在大圖中找小圖
    value = cv2.minMaxLoc(res)
    a,b,c,d = value
    if abs(a) >= abs(b):
      distance = c[0]
    else:
      distance = d[0]
    print(value)
    return distance

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。