opencv 閾值分割的具體使用
閾值分割
像素圖
原始圖像像素圖 見下面
紅色線:標注一條閾值線

二進制閾值化
首先設定一條閥值線 如127
大于127的像素點灰度值設為最大(如unit8的格式為255)
小于127的像素點灰度值設為0

反二進制閾值化
首先設定一條閥值線 如127
大于127的像素點灰度值設為最小為0
小于127的像素點灰度值設為最大(如unit8的格式為255)

截斷閾值化
首先選定一個閥值,大于該閾值的像素點唄設定為該閾值,小于該閾值的不變
如:閾值127,大于127的像素點值為127;小于127的不變

反閾值化為0
先選定一個閾值,然后做如下處理:
大于等于該閾值的像素點變?yōu)?,
小于該閾值的像素點不變。

閾值化為0
先選定一個閾值,然后做如下處理:
大于等于該閾值的像素點不變,
小于該閾值的像素點變?yōu)?。

threshold函數(shù)
threshold:中文閾值
方法:
retval,dst=cv2.threshold(src,thresh,maxval,type)
retval:閾值 一般和thresh相同
dst:處理結果的圖像
src:原始圖像
thresh:閾值,閾值線,對應上文的紅線
maxval:最大值,閾值分割后指定的最大值,有1和255。最大值為1對應是二值化圖像數(shù)據(jù)
type:類型,指定那種閾值
threshold 二進制閾值
把亮的處理成白色,暗的處理成黑色
區(qū)別二值化閾值:二值化只有0,1。
二進制閾值:可以有其他兩個數(shù)。二值化是特殊的二進制閾值。
cv2.THRESH_BINARY
算例:設定閾值為127
import cv2
a=cv2.imread('lenacolor.png')#
r,b=cv2.threshold(a,127,255,cv2.THRESH_BINARY)
print('r',r)
cv2.imshow('a',a)
cv2.imshow('b',b)
cv2.waitKey(0)
cv2.destroyAllWindows()
結果:
圖中 像素只有0,255
print(b)



threshold 反二進制閾值
把亮的處理成黑色,暗的處理成白色
修改前文代碼
cv2.THRESH_BINARY_INV

threshold 截斷閾值
亮的不能太亮,有上限,暗的不變
cv2.THRESH_TRUNC

threshold 反閾值化為0
把比較亮的部分處理成0成黑色,小于等于閾值的像素點不變
cv2.THRESH_TOZERO_INV

threshold 閾值化為0
比較亮的部分不變,比較暗的部分處理成黑色為0
cv2.THRESH_TOZERO

到此這篇關于opencv 閾值分割的具體使用的文章就介紹到這了,更多相關opencv 閾值分割內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python使用sklearn庫實現(xiàn)的各種分類算法簡單應用小結
這篇文章主要介紹了Python使用sklearn庫實現(xiàn)的各種分類算法,結合實例形式分析了Python使用sklearn庫實現(xiàn)的KNN、SVM、LR、決策樹、隨機森林等算法實現(xiàn)技巧,需要的朋友可以參考下2019-07-07
Python使用matplotlib.pyplot畫熱圖和損失圖的代碼詳解
眾所周知,在完成論文相關工作時畫圖必不可少,如損失函數(shù)圖、熱力圖等是非常常見的圖,在本文中,總結了這兩個圖的畫法,下面給出了完整的代碼,開箱即用,感興趣的同學可以自己動手嘗試一下2023-09-09

