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

圖像二值化閾值調(diào)整——cv2.threshold方法

這篇具有很好參考價值的文章主要介紹了圖像二值化閾值調(diào)整——cv2.threshold方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

二值化閾值調(diào)整:調(diào)整是指在進(jìn)行圖像二值化處理時,調(diào)整閾值的過程。閾值決定了將圖像中的像素分為黑色和白色的界限,大于閾值的像素被設(shè)置為白色,小于等于閾值的像素被設(shè)置為黑色。

首先畫出灰度直方圖:橫坐標(biāo)是灰度值0—255,縱坐標(biāo)是該灰度值的像素個數(shù)。

import cv2
from matplotlib import pyplot as plt

img = cv2.imread ('6.jpg', 0)  # 讀取圖像并轉(zhuǎn)換為灰度圖像
hist = cv2.calcHist([img],[0],None,[256],[0,256])  # 計算灰度直方圖
plt.hist(img.ravel( ),256,[0,256])  # 繪制直方圖
plt.show()

圖像二值化閾值調(diào)整——cv2.threshold方法,圖像處理,計算機視覺,人工智能

方法一:

取閾值為 127,相當(dāng)于 0~255 的中位數(shù)(0+255)/2 = 127,灰度值大于等于 127 的設(shè)置為 0,灰度值大于 127 的設(shè)置為 255,這種方法簡單便捷,缺點就是閾值設(shè)置的太死板了,對于不同的照片,效果肯定不同。檢索資料的時候發(fā)現(xiàn),還有人把這種方法稱為 史上最弱智的二值處理方法,沒辦法,弱智方法也得學(xué)啊。

該方法會使用到一個 threshold 方法,threshold 方法的語法格式如下:

cv2.threshold(src, thresh, maxval, type[, dst]) -> retval, dst

參數(shù)說明如下:

  • src 輸入圖,中只能輸入單通道圖,一般就是灰度圖;
  • thresh 閾值;
  • maxval 最大值,當(dāng)像素超過了閾值(或者小于閾值)時所賦予的值;
  • type - 二值化操作的類型,有 5 種,在下文描述;
  • dst 輸出數(shù)組/圖像(與 src 相同大小和類型以及相同通道數(shù)的數(shù)組/圖像)。

返回值 retval 閾值 thresh, dst 經(jīng)過處理的圖像。

二值化操作類型type參數(shù)(閾值類型):

  • 二進(jìn)制閾值化? ?THRESH_BINARY,過門限的值為最大值,其他值為 0;
  • 反二進(jìn)制閾值化? ?THRESH_BINARY_INV,過門限的值為 0,其他值為最大值;
  • 截斷閾值化? ?THRESH_TRUNC,過門限的值為門限值,其他值不變;
  • 閾值化為 0? ?THRESH_TOZERO,過門限的值不變,其他設(shè)置為 0;
  • 反閾值化為 0? ?THRESH_TOZERO_INV,過門限的值為 0,其他不變。

以上內(nèi)容也叫做全局閾值。參考代碼:

import cv2
import matplotlib.pylab as plt

def main2():
    img = cv2.imread('6.jpg', 0)
    ret, thresh1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
    ret, thresh2 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV)
    ret, thresh3 = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC)
    ret, thresh4 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO)
    ret, thresh5 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO_INV)

    titles = ['Original Image', 'BINARY',
              'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV']
    images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]

    for i in range(6):
        plt.subplot(2, 3, i+1)
        plt.imshow(images[i], 'gray')
        plt.title(titles[i])
        plt.xticks([])
        plt.yticks([])

    plt.show()

main2()

圖像二值化閾值調(diào)整——cv2.threshold方法,圖像處理,計算機視覺,人工智能

當(dāng)然,也可以把代碼里面的127改成別的,這就叫手動選擇閾值。

方法二:

計算像素點矩陣中的所有像素點的灰度值的平均值 avg,讓每一個像素點與 avg 比較,小于等于 avg 的像素點就為 0(黑色),大于 avg 的像素點為 255(白色),這種方法看起來靠譜了一些。

使用該方法之前需要先遍歷圖像的所有灰度值,才能計算出平均值。下圖所示的閾值計算結(jié)果是151.參考代碼如下:

import cv2

def main():
    img = cv2.imread("1.TIF", 0)
    
    height, width = img.shape
    # 灰度值總和
    px_t = 0
    for i in range(height):
        for j in range(width):
            px_t += img[i][j]
    print(px_t)
    # 求像素平均值
    avg_thresh = int(px_t / (height * width))
    print(avg_thresh)
   
    thresh, dst = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
    cv2.imshow("dst", dst)
    cv2.waitKey()
    cv2.imwrite("2.jpg",dst)

if __name__ == "__main__":
    main()

圖像二值化閾值調(diào)整——cv2.threshold方法,圖像處理,計算機視覺,人工智能文章來源地址http://www.zghlxwxcb.cn/news/detail-739300.html

到了這里,關(guān)于圖像二值化閾值調(diào)整——cv2.threshold方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

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

    2024年02月02日
    瀏覽(24)
  • 【OpenCV常用函數(shù):顏色空間轉(zhuǎn)換、閾值化】cv2.cvtColor()+cv2.threshold()

    對圖像進(jìn)行顏色空間的轉(zhuǎn)換 對圖像進(jìn)行閾值化/二值化

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

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

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

    2024年02月08日
    瀏覽(30)
  • 【C++ OpenCV】閾值二值化、閾值反二值化、截斷、閾值取零、閾值反取零、自適應(yīng)閾值使用方法以及時機

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

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

    2024年02月07日
    瀏覽(24)
  • 深入理解 OpenCV 中的二值化:cv2.THRESH_BINARY 與 cv2.THRESH_OTSU 的組合運用

    引言 在圖像處理和計算機視覺中,二值化是一種常見的圖像處理技術(shù),用于將圖像轉(zhuǎn)換為只有兩種可能取值的圖像,通常是黑白。OpenCV 提供了一種強大的工具來實現(xiàn)圖像二值化,即 cv2.threshold() 函數(shù)。本篇博客將深入介紹 cv2.THRESH_BINARY 和 cv2.THRESH_OTSU 的組合使用,以及它們對

    2024年02月05日
    瀏覽(16)
  • 【GEE筆記】最大類間方差法(otsu、大津法)算法實現(xiàn)——計算閾值、圖像二值化分割

    【GEE筆記】最大類間方差法(otsu、大津法)算法實現(xiàn)——計算閾值、圖像二值化分割

    1、最大類間方差法原理概述 2、GEE頻率分布統(tǒng)計,直方圖繪制 3、算法具體實現(xiàn),以GEE JavaScript版本為例 4、目標(biāo)像元提取,以遙感影像提取水體為示例 最大類間方差法(又名otsu、大津法)是由日本學(xué)者OTSU于1979年提出的一種對圖像進(jìn)行二值化的高效算法。算法假定該圖像根據(jù)

    2024年02月06日
    瀏覽(27)
  • 基于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)
  • 009 OpenCV 二值化 threshold

    009 OpenCV 二值化 threshold

    本文使用環(huán)境為: Windows10 Python 3.9.17 opencv-python 4.8.0.74 在機器視覺應(yīng)用中,OpenCV的二值化函數(shù)threshold具有不可忽視的作用。主要的功能是將一幅灰度圖進(jìn)行二值化處理,以此大幅降低圖像的數(shù)據(jù)量,從而突顯出目標(biāo)的輪廓。 具體來說,函數(shù)threshold可以將圖像上的像素根據(jù)閾值

    2024年02月05日
    瀏覽(41)
  • opencv中調(diào)整圖像顯示框大小,cv2.namedWindow()

    如果要要調(diào)整cv2.imshow顯示出來的窗口大小, 需要使用 cv2.namedWindow(‘窗口標(biāo)題’, 默認(rèn)參數(shù)) 參數(shù) cv2.imshow(‘窗口標(biāo)題’,image),如果前面沒有cv2.namedWindow,就自動先執(zhí)行一個cv2.namedWindow() 窗口默認(rèn)cv2.WINDOW_AUTOSIZE namedWindow函數(shù)的作用是通過指定的名字,創(chuàng)建一個可以作為圖像和

    2024年02月16日
    瀏覽(92)
  • 圖像二值化算法

    圖像二值化算法

    圖像二值化( Image Binarization)就是將圖像上的像素點的灰度值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出明顯的黑白效果的過程。二值圖像每個像素只有兩種取值:要么純黑,要么純白。進(jìn)行二值化有多種方式,其中最常用的就是采用閾值法(Thresholding)進(jìn)行二值化。 根據(jù)閾值

    2024年02月06日
    瀏覽(47)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包