日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

驗(yàn)證碼識(shí)別之二值化介紹

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-10 20:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

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

在前面的簡(jiǎn)單驗(yàn)證碼識(shí)別中,我的二值化代碼是這樣寫的:a = (a > 180) * 255,至于這里為什么不乘1而乘255,因?yàn)槲乙@示圖片看看效果。如果只是用于算法識(shí)別的話,乘1會(huì)更好。但是,這里的180也就是二值化的閾值是如何得到的,開始是通過一個(gè)一個(gè)試然后看效果哪個(gè)好就選哪個(gè),因?yàn)槲覀円话阒蛔R(shí)別某個(gè)網(wǎng)站的驗(yàn)證碼,這樣只要測(cè)試幾次得到結(jié)果后便可用于這個(gè)網(wǎng)站其他的驗(yàn)證碼。

這樣測(cè)試有點(diǎn)浪費(fèi)時(shí)間,雖然是一次性的,但是你手動(dòng)測(cè)出的驗(yàn)證碼不一定是最合適的。所以我們需要算法去自動(dòng)計(jì)算出驗(yàn)證碼的閾值,算法有很多,這里我們使用迭代法和最大類間方差法,通過這兩個(gè)算法計(jì)算出來(lái)的閾值基本差不多。

迭代法

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

算法實(shí)現(xiàn)如下:

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。同時(shí)像素被分為前景和背景的概率分別為p1、p2。因此就有:
p1*m1+p2*m2=mG p1+p2=1 則類間方差表達(dá)式為:


使得上式值最大時(shí)的閾值T就是最佳的閾值。

算法實(shí)現(xiàn)如下:

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

最后,我正在學(xué)習(xí)一些機(jī)器學(xué)習(xí)的算法,對(duì)于一些我需要記錄的內(nèi)容我都會(huì)分享到博客和微信公眾號(hào)(python成長(zhǎng)路),歡迎關(guān)注。平時(shí)的話一般分享一些爬蟲或者Python的內(nèi)容。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    67

    文章

    8567

    瀏覽量

    137255
  • 二值化
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    4439
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    遠(yuǎn)景達(dá)LV4300N二維碼讀頭:多場(chǎng)景適配的高效識(shí)別利器

    在數(shù)字轉(zhuǎn)型加速的當(dāng)下,二維碼識(shí)別設(shè)備已成為零售、物流、智慧城市等領(lǐng)域的核心交互組件,而遠(yuǎn)景達(dá)LV4300N二維碼讀頭憑借卓越性能,成為市場(chǎng)上備受青睞的
    的頭像 發(fā)表于 01-20 15:52 ?326次閱讀
    遠(yuǎn)景達(dá)LV4300N<b class='flag-5'>二維碼</b>讀頭:多場(chǎng)景適配的高效<b class='flag-5'>識(shí)別</b>利器

    二維碼掃描識(shí)別器有內(nèi)嵌款嗎?掃識(shí)別的功能是嵌入在自助機(jī)上的

    在自助設(shè)備遍布生活場(chǎng)景的今天,不少人會(huì)疑惑“二維碼掃描識(shí)別器有內(nèi)嵌款嗎?”答案是肯定的——內(nèi)嵌式二維碼掃描識(shí)別器早已成為自助機(jī)的核心配置,從商場(chǎng)的自動(dòng)售賣機(jī)到火車站的自助取票機(jī),掃
    的頭像 發(fā)表于 12-04 16:19 ?676次閱讀
    <b class='flag-5'>二維碼</b>掃描<b class='flag-5'>識(shí)別</b>器有內(nèi)嵌款嗎?掃<b class='flag-5'>碼</b><b class='flag-5'>識(shí)別</b>的功能是嵌入在自助機(jī)上的

    二維碼模塊是什么?它和普通條碼識(shí)別設(shè)備有什么不同

    在物聯(lián)網(wǎng)技術(shù)飛速發(fā)展的今天,條碼與二維碼已成為信息傳遞的重要載體,從超市結(jié)賬到工業(yè)生產(chǎn)溯源,從移動(dòng)支付到醫(yī)療耗材管理,相關(guān)識(shí)別設(shè)備無(wú)處不在。其中,二維碼模塊作為核心
    的頭像 發(fā)表于 11-06 15:54 ?708次閱讀
    <b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>模塊是什么?它和普通條碼<b class='flag-5'>識(shí)別</b>設(shè)備有什么不同

    【嘉楠堪智K230開發(fā)板試用體驗(yàn)】+二維碼識(shí)別

    二維碼識(shí)別 二維碼識(shí)別本質(zhì)上是一個(gè)通過圖像處理技術(shù)定位并矯正圖像中的二維碼區(qū)域,然后根據(jù)其特定編碼規(guī)則讀取黑白模塊的
    發(fā)表于 08-22 20:16

    模塊廠家怎么選?二維碼模組詳解

    你是否發(fā)現(xiàn),從超市自助結(jié)賬的POS機(jī)到小區(qū)的智能門禁,從快遞柜的取件掃到地鐵閘機(jī)的乘車識(shí)別,二維碼模組早已滲透到生活與產(chǎn)業(yè)的每一個(gè)角
    的頭像 發(fā)表于 08-18 15:58 ?988次閱讀
    掃<b class='flag-5'>碼</b>模塊廠家怎么選?<b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>模組詳解

    自動(dòng)測(cè)試如何繞過Cloudflare驗(yàn)證碼?Python + Selenium 腳本實(shí)戰(zhàn)指南!

    01什么是Cloudflare驗(yàn)證碼Cloudflare提供網(wǎng)絡(luò)工具,并提供一套全面的安全功能,以保護(hù)網(wǎng)站免受各種在線威脅。Cloudflare驗(yàn)證碼是一種用于區(qū)分人類用戶和自動(dòng)機(jī)器人的功能。它是
    的頭像 發(fā)表于 08-15 10:01 ?1662次閱讀
    自動(dòng)<b class='flag-5'>化</b>測(cè)試如何繞過Cloudflare<b class='flag-5'>驗(yàn)證碼</b>?Python + Selenium 腳本實(shí)戰(zhàn)指南!

    如何更好選擇二維碼識(shí)別掃描器廠家?

    在采購(gòu)二維碼識(shí)別掃描器時(shí),選對(duì)廠家直接影響設(shè)備的使用效果和后續(xù)保障。想要找到靠譜的合作方,以下幾個(gè)關(guān)鍵因素值得重點(diǎn)考量:?產(chǎn)品品質(zhì)是核心二維碼識(shí)別掃描器的品質(zhì)直接決定了使用體驗(yàn),這其中
    的頭像 發(fā)表于 08-13 16:09 ?1146次閱讀
    如何更好選擇<b class='flag-5'>二維碼</b><b class='flag-5'>識(shí)別</b>掃描器廠家?

    二維碼掃描讀器在工廠流水線的應(yīng)用

    在制造業(yè)自動(dòng)升級(jí)的浪潮中,二維碼掃描讀器憑借其信息密度高、抗污損能力強(qiáng)的特性,逐漸成為工廠流水線數(shù)據(jù)采集的核心設(shè)備。它通過精準(zhǔn)識(shí)別產(chǎn)品表面的二維
    的頭像 發(fā)表于 08-07 14:48 ?1055次閱讀
    <b class='flag-5'>二維碼</b>掃描讀<b class='flag-5'>碼</b>器在工廠流水線的應(yīng)用

    一維二維碼條碼識(shí)讀器的主要功能有哪些

    在信息快速發(fā)展的當(dāng)下,一維二維碼條碼識(shí)讀器已成為各行各業(yè)高效處理信息的重要工具。從超市收銀到物流追蹤,它憑借快速準(zhǔn)確的信息識(shí)別能力,大幅提升了工作效率。那么,一維二維碼條碼識(shí)讀器的主
    的頭像 發(fā)表于 08-01 15:59 ?1226次閱讀
    一維<b class='flag-5'>二維碼</b>條碼識(shí)讀器的主要功能有哪些

    GM861條二維碼識(shí)別模塊用戶手冊(cè)

    GM861條二維碼識(shí)別模塊用戶手冊(cè)
    發(fā)表于 07-09 14:56 ?1次下載

    基于STM32的二維碼識(shí)別源碼+二維碼解碼庫(kù)lib

    基于STM32的二維碼識(shí)別源碼+二維碼解碼庫(kù)lib,推薦下載!
    發(fā)表于 05-28 22:04

    基于LockAI視覺識(shí)別模塊:C++二維碼識(shí)別

    : 輸出參數(shù),用于存儲(chǔ)帶有可視結(jié)果的輸出圖像。 results: 輸入?yún)?shù),表示二維碼檢測(cè)的結(jié)果集。每個(gè)Result對(duì)象包含二維碼的位置信息和解碼后的文本內(nèi)容。 返回: 無(wú) 3
    發(fā)表于 05-26 09:57

    基于LockAI視覺識(shí)別模塊:C++二維碼識(shí)別

    二維碼識(shí)別是視覺模塊經(jīng)常使用到的功能之一。我們將演示如何使用基于瑞芯微RV1106的LockAI視覺識(shí)別模塊進(jìn)行二維碼識(shí)別
    的頭像 發(fā)表于 05-26 09:42 ?1180次閱讀
    基于LockAI視覺<b class='flag-5'>識(shí)別</b>模塊:C++<b class='flag-5'>二維碼</b><b class='flag-5'>識(shí)別</b>

    基于STM32的二維碼識(shí)別源碼+二維碼解碼庫(kù)lib

    基于STM32的二維碼識(shí)別源碼+二維碼解碼庫(kù)lib項(xiàng)目實(shí)例下載! 純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請(qǐng)第一時(shí)間告知,刪除內(nèi)
    發(fā)表于 05-23 20:45

    基于RK3576開發(fā)板的二維碼識(shí)別算法

    了快速上手指南,包括源碼管理、開發(fā)環(huán)境搭建、例程編譯與運(yùn)行等步驟,并詳細(xì)介紹二維碼識(shí)別API的使用方法及調(diào)用示例。通過API函數(shù)qr_decode,用戶可以輕松實(shí)現(xiàn)二維碼
    的頭像 發(fā)表于 05-10 09:25 ?1105次閱讀
    基于RK3576開發(fā)板的<b class='flag-5'>二維碼</b><b class='flag-5'>識(shí)別</b>算法
    南漳县| 随州市| 田林县| 福清市| 茶陵县| 汉川市| 芮城县| 如东县| 逊克县| 墨玉县| 柳州市| 怀宁县| 南开区| 泗洪县| 富川| 余干县| 洪洞县| 兴宁市| 西贡区| 沾化县| 民乐县| 武宁县| 仁寿县| 阿瓦提县| 隆回县| 定日县| 长子县| 布尔津县| 腾冲县| 乐都县| 麻栗坡县| 杂多县| 渭南市| 永城市| 武宁县| 彭水| 温州市| 毕节市| 平泉县| 辰溪县| 大庆市|