国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Opencv--自適應(yīng)圖像二值化】cv2.adaptiveThreshold()

這篇具有很好參考價值的文章主要介紹了【Opencv--自適應(yīng)圖像二值化】cv2.adaptiveThreshold()。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【Opencv–adaptiveThreshold】自適應(yīng)閾值圖像二值化

1. 介紹

在這里 cv2.threshold函數(shù) 介紹了普通的opencv圖像閾值處理函數(shù)。但threshold 的圖像閾值處理對于某些光照不均的圖像,這種全局閾值分割的方法并不能得到好的效果。

圖像閾值化操作中,我們更關(guān)心的是從二值化圖像中分離目標區(qū)域和背景區(qū)域,僅僅通過固定閾值很難達到理想的分割效果。在圖片中的灰度是不均勻的,所以通常情況下圖片中不同區(qū)域的閾值是不一樣的。這樣就需要一種方法根據(jù)圖像不同區(qū)域亮度或灰度分布,計算其局部閾值來進行閾值處理。這種方法就是自適應(yīng)閾值化圖像處理,實際上這可以稱為局部閾值法,在OpenCV中adaptiveThreshold就是這種方法。

2. adaptiveThreshold函數(shù)

2.1 函數(shù)調(diào)用

import cv2
dst = cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)
  • 參數(shù)說明:

    • src:源圖像,8位的灰度圖。
    • maxValue:用于指定滿足條件的像素設(shè)定的灰度值
    • adaptiveMethod:使用的自適應(yīng)閾值算法,有2種類型ADAPTIVE_THRESH_MEAN_C算法(局部鄰域塊均值)或ADAPTIVE_THRESH_GAUSSIAN_C(局部鄰域塊高斯加權(quán)和)。
      • ADAPTIVE_THRESH_MEAN_C的計算方法是計算出鄰域的平均值再減去第六個參數(shù)C的值;
      • ADAPTIVE_THRESH_GAUSSIAN_C的計算方法是計算出鄰域的高斯均勻值再減去第六個參數(shù)C的值。
      • 處理邊界時使用BORDER_REPLICATE | BORDER_ISOLATED模式。
    • thresholdType:閾值類型,只能是THRESH_BINARY或THRESH_BINARY_INV二者之一,具體參考上面“圖像閾值處理”的表格
    • blockSize:表示鄰域塊大小,用來計算區(qū)域閾值,一般選擇3、5、7……
    • C:表示常數(shù),它是一個從均勻或加權(quán)均值提取的常數(shù),通常為正數(shù),但也可以是負數(shù)或零
  • 返回值:

    • dst:處理后的圖像

2.2 補充說明

  1. 亮度較高的圖像區(qū)域的二值化閾值通常會較高,而亮度較低的圖像區(qū)域的二值化閾值則會相適應(yīng)地變小。
  2. 在灰度圖像中,灰度值變化明顯的區(qū)域往往是物體的輪廓,所以將圖像分成一小塊一小塊的去計算閾值往往會得出圖像的輪廓。因此函數(shù)adaptiveThreshold除了將灰度圖像二值化,也可以進行邊緣提取。
  3. 之所以能進行邊緣提取,是因為當block很小時,如block_size=3 or 5 or 7時,“自適應(yīng)”的程度很高,即容易出現(xiàn)block里面的像素值都差不多,這樣便無法二值化,而只能在邊緣等梯度大的地方實現(xiàn)二值化,結(jié)果顯得它是邊緣提取函數(shù)。
  4. 當把blockSize設(shè)為比較大的值時,如blockSize=21 or 31 or 41時,adaptiveThreshold便是二值化函數(shù)
  5. blockSize必須為大于1的奇數(shù)(這里解釋一下,size為偶數(shù)的話,該block的中心點就不確定了,因此為奇數(shù)。)
  6. 如果使用平均值方法,平均值mean為180,差值delta為10,maxValue設(shè)為255。那么灰度小于170的像素為0,大于等于170的像素為255,如果是反向二值化,灰度小于170的像素為255,大于等于170的像素為0。

3. 代碼示例

import cv2

img = cv2.imread('ori.jpg', 0)

img1 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 3, 5)
cv2.imwrite("new1.jpg", img1)

img2 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 31, 5)
cv2.imwrite("new1.jpg", img2)

4. 效果

4.1 原圖(ori.img)

cv2.adaptivethreshold,計算機視覺,使用說明,Opencv,opencv,計算機視覺,圖像處理

4.2 處理后

  • new1.img
    cv2.adaptivethreshold,計算機視覺,使用說明,Opencv,opencv,計算機視覺,圖像處理
  • new2.jpg
    cv2.adaptivethreshold,計算機視覺,使用說明,Opencv,opencv,計算機視覺,圖像處理

可以看到,

  • 當blockSize小時,輪廓識別效果明顯,突出邊緣區(qū)域。
  • 而blockSize大時,就是一個二值化圖像。

5. 參考

【1】https://blog.csdn.net/LaoYuanPython/article/details/108558834文章來源地址http://www.zghlxwxcb.cn/news/detail-722863.html

到了這里,關(guān)于【Opencv--自適應(yīng)圖像二值化】cv2.adaptiveThreshold()的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【C++ OpenCV】閾值二值化、閾值反二值化、截斷、閾值取零、閾值反取零、自適應(yīng)閾值使用方法以及時機

    【C++ OpenCV】閾值二值化、閾值反二值化、截斷、閾值取零、閾值反取零、自適應(yīng)閾值使用方法以及時機

    閾值:簡單來說就是一把分割圖像像素的標尺,在二值化處理中有固定閾值和自適應(yīng)閾值兩種形式。 那么什么時候用固定閾值,什么時候使用自適應(yīng)閾值呢? 答:當圖像 質(zhì)量較好 ,且目標和背景容易區(qū)分時,可以采用固定閾值 當圖像 質(zhì)量差 ,且有 陰影過度 ,雖然使用大

    2024年02月07日
    瀏覽(24)
  • python-opencv-cv2.threshold()二值化函數(shù)詳解

    python-opencv-cv2.threshold()二值化函數(shù)詳解

    cv2.threshold( src, thresh, maxval, type[, dst] ) → retval, dst 參數(shù) 描述 src 表示的是圖片源 thresh 表示的是閾值(起始值) maxval 表示的是最大值 type 表示的是這里劃分的時候使用的是方法選擇參數(shù) 常用值為0(cv2.THRESH_BINARY) 第四個是一個方法選擇參數(shù),常用的有: ? cv2.THRESH_BINARY(黑

    2024年02月15日
    瀏覽(26)
  • 圖像二值化處理(全局閾值 自適應(yīng)閾值 手動閾值操作以及直方圖畫法)

    圖像二值化處理(全局閾值 自適應(yīng)閾值 手動閾值操作以及直方圖畫法)

    圖像二值化就是把讓圖像的像素點只有0和1(只有黑白兩各種顏色,黑是背景,白是前景),關(guān)鍵點是尋找一個閾值T,使圖像中小于閾值T的像素點變?yōu)?,大于T的像素點變?yōu)?55。下面介紹的就是尋找一個圖像的閾值T的方法。(主要根據(jù)直方圖) retval:返回的閾值(double類型)

    2024年02月08日
    瀏覽(30)
  • opencv(20) 圖像閾值(二值化)

    opencv(20) 圖像閾值(二值化)

    二值化核心思想,設(shè)閾值,大于閾值的為0(黑色)或 255(白色),使圖像稱為黑白圖。 閾值可固定,也可以自適應(yīng)閾值。 自適應(yīng)閾值一般為一點像素與這點為中序的區(qū)域像素平均值或者高斯分布加權(quán)和的比較,其中可以設(shè)置一個差值也可以不設(shè)置。 圖像的閾值化旨在提取

    2024年02月02日
    瀏覽(24)
  • OpenCV(八):圖像二值化

    OpenCV(八):圖像二值化

    目錄 1.固定值二值化 2.自適應(yīng)閾值二值化 3.Android JNI完整代碼 1.固定值二值化 固定閾值二值化是OpenCV中一種簡單而常用的圖像處理技術(shù),用于將圖像轉(zhuǎn)換為二值圖像。在固定閾值二值化中,像素值根據(jù)一個預(yù)定義的閾值進行分類,大于閾值的像素被設(shè)置為白色,而小于或等于

    2024年02月10日
    瀏覽(24)
  • OpenCV圖像處理----圖像的二值化

    OpenCV圖像處理----圖像的二值化

    圖像二值化( Image Binarization) 就是將圖像上的像素點的灰度值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出明顯的黑白效果的過程。 二值化的原理 OpenCV提供的圖像二值化API threshold()方法參數(shù): 圖片矩陣 閾值 圖片中的最大值 二值化的方式 二值化的方式: THRESH_BINARY 高于閾值改為

    2024年02月12日
    瀏覽(21)
  • 基于opencv的c++圖像處理(圖像二值化)

    基于opencv的c++圖像處理(圖像二值化)

    基于opencv的c++接口,實現(xiàn)常用的圖像二值化方法,包括了最大類間方差法(OTSU)、固定化閾值以及自適應(yīng)閾值。 該函數(shù)將固定級別的閾值應(yīng)用于多通道陣列。該函數(shù)通常用于從灰度圖像中獲取雙層(二進制)圖像(#compare 也可用于此目的)或用于去除噪聲,即過濾掉值過小

    2024年02月07日
    瀏覽(31)
  • 基于FPGA的圖像自適應(yīng)閾值二值化算法實現(xiàn),包括tb測試文件和MATLAB輔助驗證

    基于FPGA的圖像自適應(yīng)閾值二值化算法實現(xiàn),包括tb測試文件和MATLAB輔助驗證

    目錄 1.算法運行效果圖預(yù)覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1Otsu方法 4.2 Adaptive Thresholding方法 4.3、FPGA實現(xiàn)過程 5.算法完整程序工程 Vivado2019.2 matlab2022a ? ? ? ?圖像二值化是數(shù)字圖像處理中的一種常見技術(shù),可以將灰度圖像轉(zhuǎn)換為黑白二值圖像,突出圖像

    2024年02月08日
    瀏覽(25)
  • 使用OpenCV C++進行圖像二值化操作

    使用OpenCV C++進行圖像二值化操作

    threshold()將固定閾值應(yīng)用于多通道圖像陣列,通常用于從灰度圖像中獲得二值圖像或用于去除噪聲,即濾除值過小或過大的像素。該函數(shù)支持幾種類型的閾值設(shè)置,它們由類型參數(shù)決定。 src:輸入數(shù)組(多通道,8位或32位浮點數(shù)) dst:輸出數(shù)組(與src的尺寸、類型、通道數(shù)相

    2024年02月03日
    瀏覽(25)
  • OpenCV常用功能——灰度處理和圖像二值化處理

    1.1 cvtColor函數(shù) 函數(shù)原型: 功能 :轉(zhuǎn)換圖像顏色空間。 參數(shù) : src: 輸入圖像。 code: 顏色空間轉(zhuǎn)換代碼??梢匀〕A縞v2.COLOR_BGR2GRAY或cv2.COLOR_RGB2GRAY。 dst: 輸出圖像。 dstCn: 輸出圖像的通道數(shù),如果設(shè)置為0,則跟隨轉(zhuǎn)換代碼自動設(shè)置。 內(nèi)置函數(shù)示例代碼: 灰度處理的原理是將

    2024年02月08日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包