最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

opencv函數(shù)threshold、adaptiveThreshold、Otsu二值化的實(shí)現(xiàn)

 更新時(shí)間:2021年03月12日 11:13:10   作者:假小牙  
這篇文章主要介紹了opencv函數(shù)threshold、adaptiveThreshold、Otsu二值化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

threshold:固定閾值二值化,

ret, dst = cv2.threshold(src, thresh, maxval, type)
  • src: 輸入圖,只能輸入單通道圖像,通常來(lái)說(shuō)為灰度圖
  • dst: 輸出圖
  • thresh: 閾值
  • maxval: 當(dāng)像素值超過(guò)了閾值(或者小于閾值,根據(jù)type來(lái)決定),所賦予的值
  • type:二值化操作的類型,包含以下5種類型: cv2.THRESH_BINARY; cv2.THRESH_BINARY_INV; cv2.THRESH_TRUNC; cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV

官方文檔的示例代碼:

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('gradient.png',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 xrange(6):
  plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
  plt.title(titles[i])
  plt.xticks([]),plt.yticks([])
plt.show()

結(jié)果為:

 

adaptiveThreshold:自適應(yīng)閾值二值化

自適應(yīng)閾值二值化函數(shù)根據(jù)圖片一小塊區(qū)域的值來(lái)計(jì)算對(duì)應(yīng)區(qū)域的閾值,從而得到也許更為合適的圖片。

dst = cv2.adaptiveThreshold(src, maxval, thresh_type, type, Block Size, C)
  • src: 輸入圖,只能輸入單通道圖像,通常來(lái)說(shuō)為灰度圖
  • dst: 輸出圖
  • maxval: 當(dāng)像素值超過(guò)了閾值(或者小于閾值,根據(jù)type來(lái)決定),所賦予的值
  • thresh_type: 閾值的計(jì)算方法,包含以下2種類型:cv2.ADAPTIVE_THRESH_MEAN_C; cv2.ADAPTIVE_THRESH_GAUSSIAN_C.
  • type:二值化操作的類型,與固定閾值函數(shù)相同,包含以下5種類型: cv2.THRESH_BINARY; cv2.THRESH_BINARY_INV; cv2.THRESH_TRUNC; cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV.
  • Block Size: 圖片中分塊的大小
  • C :閾值計(jì)算方法中的常數(shù)項(xiàng)

官方文檔的示例代碼:

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('sudoku.png',0)
img = cv2.medianBlur(img,5)
ret,th1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
th2 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
      cv2.THRESH_BINARY,11,2)
th3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
      cv2.THRESH_BINARY,11,2)
titles = ['Original Image', 'Global Thresholding (v = 127)',
      'Adaptive Mean Thresholding', 'Adaptive Gaussian Thresholding']
images = [img, th1, th2, th3]
for i in xrange(4):
  plt.subplot(2,2,i+1),plt.imshow(images[i],'gray')
  plt.title(titles[i])
  plt.xticks([]),plt.yticks([])
plt.show()

結(jié)果為:

 

Otsu's Binarization: 基于直方圖的二值化

Otsu's Binarization是一種基于直方圖的二值化方法,它需要和threshold函數(shù)配合使用。

Otsu過(guò)程:
1. 計(jì)算圖像直方圖;
2. 設(shè)定一閾值,把直方圖強(qiáng)度大于閾值的像素分成一組,把小于閾值的像素分成另外一組;
3. 分別計(jì)算兩組內(nèi)的偏移數(shù),并把偏移數(shù)相加;
4. 把0~255依照順序多為閾值,重復(fù)1-3的步驟,直到得到最小偏移數(shù),其所對(duì)應(yīng)的值即為結(jié)果閾值。

官方文檔的示例代碼:

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('noisy2.png',0)
# global thresholding
ret1,th1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
# Otsu's thresholding
ret2,th2 = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# Otsu's thresholding after Gaussian filtering
blur = cv2.GaussianBlur(img,(5,5),0)
ret3,th3 = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# plot all the images and their histograms
images = [img, 0, th1,
     img, 0, th2,
     blur, 0, th3]
titles = ['Original Noisy Image','Histogram','Global Thresholding (v=127)',
     'Original Noisy Image','Histogram',"Otsu's Thresholding",
     'Gaussian filtered Image','Histogram',"Otsu's Thresholding"]
for i in xrange(3):
  plt.subplot(3,3,i*3+1),plt.imshow(images[i*3],'gray')
  plt.title(titles[i*3]), plt.xticks([]), plt.yticks([])
  plt.subplot(3,3,i*3+2),plt.hist(images[i*3].ravel(),256)
  plt.title(titles[i*3+1]), plt.xticks([]), plt.yticks([])
  plt.subplot(3,3,i*3+3),plt.imshow(images[i*3+2],'gray')
  plt.title(titles[i*3+2]), plt.xticks([]), plt.yticks([])
plt.show()

結(jié)果為:

 

參考文獻(xiàn):http://docs.opencv.org/3.2.0/d7/d4d/tutorial_py_thresholding.html

到此這篇關(guān)于opencv函數(shù)threshold、adaptiveThreshold、Otsu二值化的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)opencv threshold、adaptiveThreshold、Otsu內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python虛擬環(huán)境遷移的實(shí)現(xiàn)

    Python虛擬環(huán)境遷移的實(shí)現(xiàn)

    本文主要介紹了Python虛擬環(huán)境遷移的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python單元測(cè)試unittest模塊使用終極指南

    Python單元測(cè)試unittest模塊使用終極指南

    本文將詳細(xì)介紹unittest模塊的各個(gè)方面,包括測(cè)試用例、斷言、測(cè)試套件、setUp和tearDown方法、跳過(guò)和期望異常、測(cè)試覆蓋率、持續(xù)集成等內(nèi)容,我們將提供豐富的示例代碼,以便讀者更好地理解如何使用unittest進(jìn)行單元測(cè)試
    2023-12-12
  • Python入門必須知道的11個(gè)知識(shí)點(diǎn)

    Python入門必須知道的11個(gè)知識(shí)點(diǎn)

    這篇文章主要為大家詳細(xì)介紹了Python入門必須知道的11個(gè)知識(shí)點(diǎn),幫助更好地了解python,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python?requests模塊封裝詳解

    python?requests模塊封裝詳解

    requests是一個(gè)常用的HTTP請(qǐng)求庫(kù),可以方便地向網(wǎng)站發(fā)送HTTP請(qǐng)求,并獲取響應(yīng)結(jié)果,本文主要和大家介紹一下requests模塊的使用與封裝,需要的可以參考下
    2023-09-09
  • Python應(yīng)用實(shí)現(xiàn)處理excel數(shù)據(jù)過(guò)程解析

    Python應(yīng)用實(shí)現(xiàn)處理excel數(shù)據(jù)過(guò)程解析

    這篇文章主要介紹了Python應(yīng)用實(shí)現(xiàn)處理excel數(shù)據(jù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python+tkinter+mysql做簡(jiǎn)單數(shù)據(jù)庫(kù)查詢界面

    python+tkinter+mysql做簡(jiǎn)單數(shù)據(jù)庫(kù)查詢界面

    本文主要介紹了python+tkinter+mysql做簡(jiǎn)單數(shù)據(jù)庫(kù)查詢界面,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • matplotlib.pyplot繪圖顯示控制方法

    matplotlib.pyplot繪圖顯示控制方法

    今天小編就為大家分享一篇matplotlib.pyplot繪圖顯示控制方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 使用tensorflow DataSet實(shí)現(xiàn)高效加載變長(zhǎng)文本輸入

    使用tensorflow DataSet實(shí)現(xiàn)高效加載變長(zhǎng)文本輸入

    今天小編就為大家分享一篇使用tensorflow DataSet實(shí)現(xiàn)高效加載變長(zhǎng)文本輸入,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python各種excel寫入方式的速度對(duì)比

    python各種excel寫入方式的速度對(duì)比

    這篇文章主要介紹了python各種excel寫入方式的速度對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Python3中的算術(shù)運(yùn)算符詳解

    Python3中的算術(shù)運(yùn)算符詳解

    這篇文章主要介紹了Python3中的算術(shù)運(yùn)算符詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09

最新評(píng)論

文登市| 辽中县| 杨浦区| 祁连县| 进贤县| 乐安县| 肥城市| 泰兴市| 阿拉善右旗| 竹溪县| 丹凤县| 天峨县| 囊谦县| 西峡县| 榆社县| 富源县| 汤原县| 秦安县| 靖边县| 永川市| 富锦市| 九寨沟县| 钦州市| 公安县| 民和| 塘沽区| 菏泽市| 九龙城区| 习水县| 集贤县| 云安县| 交城县| 许昌市| 广水市| 呈贡县| 鸡泽县| 平顺县| 沈阳市| 井陉县| 新民市| 广灵县|