在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

驗證碼識別之二值化介紹

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-10 20:50 ? 次閱讀

前言

二值化顧名思義就是將數變成兩種值,一般非0即1。而在驗證碼處理中,如果直接使用灰度圖,那么每個像素的值會在0-255,這樣肯定會增加計算時間,而二值化后每個像素的值只是0和1。

在前面的簡單驗證碼識別中,我的二值化代碼是這樣寫的:a = (a > 180) * 255,至于這里為什么不乘1而乘255,因為我要顯示圖片看看效果。如果只是用于算法識別的話,乘1會更好。但是,這里的180也就是二值化的閾值是如何得到的,開始是通過一個一個試然后看效果哪個好就選哪個,因為我們一般只識別某個網站的驗證碼,這樣只要測試幾次得到結果后便可用于這個網站其他的驗證碼。

這樣測試有點浪費時間,雖然是一次性的,但是你手動測出的驗證碼不一定是最合適的。所以我們需要算法去自動計算出驗證碼的閾值,算法有很多,這里我們使用迭代法和最大類間方差法,通過這兩個算法計算出來的閾值基本差不多。

迭代法

  1. 求出圖像中的最小灰度值和最大灰度值,分別記為Gmin和Gmax,則閾值初值T0=(Gmin+Gmax)/2;
  2. 根據閾值T0將圖像分割成前景和背景兩部分,求出兩部分的平均灰度值m1和m2,平均灰度值=總灰度值/像素個數
  3. 求出新閾值T1=(m1+m2)/2
  4. 如果T0=T1,則結束,否則將T1的值賦予T0,從第2步重新計算。

算法實現如下:

import numpy as np
from PIL import Image

def iteration(img_path):
    img = Image.open(img_path).convert('L')
    a = np.array(img)
    a = a.ravel()
    k = int((int(a.max()) + int(a.min()))/2) # 即初始閾值T0
    m = -1
    while k != m:
        # C1和C2為前景和背景的像素
        C1 = a[a >= k]   
        C2 = a[a < k]
        k = m
        m1 = np.sum(C1)/len(C1) if len(C1) else 0
        m2 = np.sum(C2)/len(C2) if len(C2) else 0
        m = int((m1 + m2)/2)
    return k 

最大類間方差法(OTSU)

存在閾值T將圖像所有像素分為前景和背景,則這兩類像素各自的均值就為m1、m2,圖像全局均值為mG。同時像素被分為前景和背景的概率分別為p1、p2。因此就有:
p1*m1+p2*m2=mG p1+p2=1 則類間方差表達式為:


使得上式值最大時的閾值T就是最佳的閾值。

算法實現如下:

import numpy as np
from PIL import Image

def otsu(img_path):
    img = Image.open(img_path).convert('L')
    a = np.array(img)
    a = a.ravel()
    L = []
    for k in range(0, 256):
        C1 = a[a >= k]
        C2 = a[a < k]
        if not(len(C1) and  len(C2)):
            L.append(0)
            continue
        m1 = np.sum(C1)/len(C1)
        m2 = np.sum(C2)/len(C2)
        p1 = len(C1)/len(a)
        p2 = len(C2)/len(a)
        x = p1 * p2 * (m1 - m2) * (m1 - m2)
        L.append(x)
    return L.index(max(L))

最后,我正在學習一些機器學習的算法,對于一些我需要記錄的內容我都會分享到博客和微信公眾號(python成長路),歡迎關注。平時的話一般分享一些爬蟲或者Python的內容。

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8446

    瀏覽量

    133123
  • 二值化
    +關注

    關注

    0

    文章

    13

    瀏覽量

    4261
收藏 人收藏

    評論

    相關推薦

    設備能識別哪些類型的 工業二維碼掃描設備有什么推薦產品

    在當今智能制造與數字轉型的浪潮中,掃設備作為信息識別與采集的關鍵工具,其重要性日益凸顯。從簡單的條形碼到復雜多變的二維碼,再到專為工業環境設計的工業
    的頭像 發表于 12-18 15:13 ?264次閱讀
    掃<b class='flag-5'>碼</b>設備能<b class='flag-5'>識別</b>哪些類型的<b class='flag-5'>碼</b> 工業<b class='flag-5'>二維碼</b>掃描設備有什么推薦產品

    工業級二維碼掃描模組有哪些特點?

    工業級二維碼掃描模組是用于各種工業環境中,快速、準確地識別和解碼二維碼的關鍵設備。隨著工業4.0和物聯網的快速發展,工業級二維碼掃描模組的應用范圍越來越廣泛,成為了許多自動
    的頭像 發表于 12-02 15:02 ?172次閱讀
    工業級<b class='flag-5'>二維碼</b>掃描模組有哪些特點?

    工業視覺在條碼/二維碼識別領域的應用

    工業視覺技術在條碼和二維碼識別領域的應用日益廣泛,它通過高精度的圖像處理和識別算法,實現了對條碼和二維碼的快速、準確識別。這項技術不僅提高了
    的頭像 發表于 11-18 16:28 ?324次閱讀
    工業視覺在條碼/<b class='flag-5'>二維碼</b><b class='flag-5'>識別</b>領域的應用

    《DNK210使用指南 -CanMV版 V1.0》第三十八章 image識別實驗

    的使用。本章分為如下幾個小節:38.1 image模塊識別方法介紹38.2 硬件設計38.3 程序設計38.4 運行驗證 38.1 image模塊
    發表于 11-13 09:35

    條碼二維碼模組,支持次開發嵌入嗎?

    在當今信息化時代,條碼二維碼模組作為自動識別技術的關鍵設備,扮演著不可或缺的角色。它們不僅在工業制造、商業零售和醫療健康等領域大顯身手,還在物流倉儲和自助服務等場景中廣泛應用。本文將深入探討條碼
    的頭像 發表于 08-14 15:44 ?356次閱讀
    條碼<b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>模組,支持<b class='flag-5'>二</b>次開發嵌入嗎?

    如何為柜式終端設備選配(集成)二維碼模塊?

    的設計與升級過程中,集成高性能的二維碼模塊是提升用戶體驗、優化業務流程的關鍵一環。首要考慮的是功能需求匹配,根據具體應用場景,甄選既能讀取傳統二維碼又能識別屏幕
    的頭像 發表于 08-05 15:48 ?346次閱讀
    如何為柜式終端設備選配(集成)<b class='flag-5'>二維碼</b>模塊?

    新大陸掃器哪款能夠識別DPM?新大陸二維介紹

    隨著工業自動的不斷發展,二維碼和數據矩陣(DPM)在生產、物流和倉儲等領域的應用越來越廣泛。DPM因其高密度和小體積的特點,常常被應
    的頭像 發表于 07-29 14:36 ?464次閱讀
    新大陸掃<b class='flag-5'>碼</b>器哪款能夠<b class='flag-5'>識別</b>DPM<b class='flag-5'>碼</b>?新大陸二維<b class='flag-5'>碼</b>掃<b class='flag-5'>碼</b>器<b class='flag-5'>介紹</b>

    生物識別驗證在哪里開啟

    識別驗證的原理是利用生物特征的唯一性和穩定性,通過采集、分析和比對生物特征數據,實現對個體身份的識別驗證。生物特征具有以下特點: 唯一性:每個人的生物特征都是獨一無
    的頭像 發表于 07-08 10:26 ?1540次閱讀

    【Vision Board創客營連載體驗】作品提交——二維碼

    【項目介紹】 使用VisionBaord的openMV的智能圖像識別功能,能準確的識別二維碼,并解析出所攜帶的信息。 【實驗方法】 1、下載官方的源碼,使用menuconfig打開op
    發表于 06-07 16:47

    遠距離掃模組,用于停車場掃

    遠距離掃模組在停車場掃支付的應用近年來得到了廣泛的推廣和應用。這些掃描模組專門針對識別距離進行了優化,能夠在1米甚至更遠的距離外精準識讀手機屏幕二維碼或紙質
    的頭像 發表于 06-06 14:29 ?428次閱讀
    遠距離掃<b class='flag-5'>碼</b>模組,用于停車場掃<b class='flag-5'>碼</b>

    二維碼模塊嵌入到電梯設備里

    二維碼模塊在電梯設備中的應用1.二維碼模塊的基本介紹二維碼
    的頭像 發表于 05-08 10:40 ?415次閱讀
    <b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>模塊嵌入到電梯設備里

    遠景達QR Code掃器模塊在智能門鎖上的應用,二維碼模塊詳解

    傳統門鎖主要是支持如指紋、密碼、門卡以及鑰匙開鎖這些基本的解鎖方式,其實已經難以滿足安全性、管理性和使用體驗等新的需求。除了高端的人臉識別功能,像更加靈活和方便的二維碼組件功能,這種最為
    的頭像 發表于 04-01 15:29 ?510次閱讀
    遠景達QR Code掃<b class='flag-5'>碼</b>器模塊在智能門鎖上的應用,<b class='flag-5'>二維碼</b>模塊詳解

    遠距離二維碼掃描器如何選擇?看看以下三款遠距離二維碼模塊

    隨著二維碼相關技術及硬件的普及與低成本維條碼掃描設備的應用被人們廣為熟知,應用的行業也眾多。然而,在某些場景中,由于需要遠距離掃描二維碼(條碼遠距離
    的頭像 發表于 03-21 15:41 ?810次閱讀
    遠距離<b class='flag-5'>二維碼</b>掃描器如何選擇?看看以下三款遠距離<b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>模塊

    閘機安裝二維碼識別器輕松解決訪客預約通行難題

    流程,讓訪客管理更加智能。閘機安裝嵌入專用的二維碼識別器后可以輕松對接各種訪客預約系統,用戶通過掃描訪客出示的二維碼,快速讀取信息并驗證
    的頭像 發表于 03-11 13:53 ?513次閱讀
    閘機安裝<b class='flag-5'>二維碼</b><b class='flag-5'>識別</b>器輕松解決訪客預約通行難題

    Labview調用Halcon識別二維碼

    Labview調用Halcon識別二維碼 可一次識別多個二維碼 使用Labview 2020編輯,halcon的版本是 19.11,32位
    發表于 02-21 16:31
    主站蜘蛛池模板: 天天摸夜夜摸夜夜狠狠摸 | 4hu影院最新地址www | 美女被猛男躁免费视频网站 | 日本黄色xxxx | 国产色系视频在线观看免费 | 久久国产精品久久久久久久久久 | 国模大尺度人体一区 | 日本69xxⅹxxxxxx19| 日本三级a| 欧美福利在线播放 | 视频网站黄色 | 亚洲国产成人精品青青草原100 | 免费一级在线观看 | 日日草夜夜草 | 精品美女在线 | 成人免费午间影院在线观看 | jizjizjizjiz日本护士出水 | 不卡中文字幕在线 | 视频一区二区在线观看 | 国产伦精品一区二区三区免费 | 黄色美女网站免费看 | 性欧美69| 欧美在线资源 | 日本不卡一区二区三区在线观看 | 日本不卡在线观看免费v | 亚洲国产综合久久精品 | 成人精品亚洲 | 九九热精品国产 | 在线视频永久在线视频 | 国产区精品高清在线观看 | 色激情小说| 日本黄黄 | 成年人www | 激情五月婷婷色 | 亚洲人成网站在线 | 亚洲视频在线免费看 | 亚洲性一区 | 亚洲免费人成在线视频观看 | 亚洲国产成人久久一区久久 | 停停色| 国产xxxxxx久色视频在 |