日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像处理:给验证码图片做降噪处理及数据清洗

發布時間:2024/7/23 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像处理:给验证码图片做降噪处理及数据清洗 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一篇博文:https://blog.csdn.net/qq_40962368/article/details/89312429

圖像處理:給驗證碼圖片做降噪處理及數據清洗

在上一篇博文中,tesseract對驗證碼識別的準確率還是非常低的,改進措施的話,可以從三個方面來考慮:

  • 1、數據的來源

? ? ? ? 數據的質量還是非常影響識別的精確度的,驗證碼圖片中含有很多的噪聲,會影響tesseract對圖片的判斷,所以要對圖片進行降噪處理。

  • 2、識別模型或者方法

? ? ? ? 模型的好壞將直接決定結果的好壞,但這里是的在模型確定的情況下考慮其他方法,所以,不予考慮。

  • 3、對結果的清洗

? ? ? ? 圖片中只含有四位數字跟小寫字母的組合,不含有特殊字符,以及空格,所以對識別出來的結果進行清洗,可以減少不必要的錯誤。

一、降噪處理

分別用高斯濾波、中值濾波和雙邊濾波對圖像進行降噪處理,并不斷調整參數,確定出對應方法的最優參數;

降噪方法準確率
0.14
高斯濾波0.11
中值濾波0.15
雙邊濾波0.28

可以看到,利用雙邊濾波函數進行的處理,效果較好,識別的精度提高了兩倍;

blur = cv2.GaussianBlur(img, (3, 3), 0) # 高斯濾波函數 blur = cv2.medianBlur(img, 3) # 中值濾波函數 blur = cv2.bilateralFilter(img, 3, 560, 560) # 雙邊濾波函數

二、數據清洗

在雙邊濾波降噪處理的基礎上再對識別結果進行數據清洗,將會提高識別的準確率;

# 對結果的處理 st = re.sub(r'[^A-Za-z0-9]+', '', a) st = st.lower() if len(st) > 4:b = st[-4:] else:b = st

最終識別的結果的準確率為0.53

三、代碼

import pytesseract import cv2 import os import numpy as np import re path = './verify_pictures/'file_name = [] for k in os.walk(path):file_name = k[-1]print('識別值' + '-----' + '真實值') num = 0 for i in file_name:img = cv2.imdecode(np.fromfile(path + i, dtype=np.uint8), 1)# 對數據的處理# blur = cv2.GaussianBlur(img, (3, 3), 0) # 高斯濾波函數# blur = cv2.medianBlur(img, 3) # 中值濾波函數blur = cv2.bilateralFilter(img, 3, 560, 560) # 雙邊濾波函數 560:0.28a = pytesseract.image_to_string(blur)# 對結果的處理st = re.sub(r'[^A-Za-z0-9]+', '', a)st = st.lower()if len(st) > 4:b = st[-4:]else:b = sttrue_value = i[-8:-4]print(b + '-----' + true_value)if b == true_value:num += 1print('識別的準確率為:' + str(num/100))

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的图像处理:给验证码图片做降噪处理及数据清洗的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。