opencv学习笔记10:阈值分割
閾值分割
像素圖
原始圖像像素圖 見下面
紅色線:標注一條閾值線
二進制閾值化
首先設定一條閥值線 如127
大于127的像素點灰度值設為最大(如unit8的格式為255)
小于127的像素點灰度值設為0
9.png)
反二進制閾值化
首先設定一條閥值線 如127
大于127的像素點灰度值設為最小為0
小于127的像素點灰度值設為最大(如unit8的格式為255)
截斷閾值化
首先選定一個閥值,大于該閾值的像素點唄設定為該閾值,小于該閾值的不變
如:閾值127,大于127的像素點值為127;小于127的不變
反閾值化為0
先選定一個閾值,然后做如下處理:
大于等于該閾值的像素點變為0,
小于該閾值的像素點不變。
閾值化為0
先選定一個閾值,然后做如下處理:
大于等于該閾值的像素點不變,
小于該閾值的像素點變為0。
threshold函數
threshold:中文閾值
方法:
retval,dst=cv2.threshold(src,thresh,maxval,type)
retval:閾值 一般和thresh相同
dst:處理結果的圖像
src:原始圖像
thresh:閾值,閾值線,對應上文的紅線
maxval:最大值,閾值分割后指定的最大值,有1和255。最大值為1對應是二值化圖像數據
type:類型,指定那種閾值
threshold 二進制閾值
把亮的處理成白色,暗的處理成黑色
區別二值化閾值:二值化只有0,1。
二進制閾值:可以有其他兩個數。二值化是特殊的二進制閾值。
cv2.THRESH_BINARY
算例:設定閾值為127
import cv2a=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
總目錄鏈接:
python3+opencv學習筆記匯總目錄(適合基礎入門學習)
進階版閾值處理講解:
opencv進階學習9:圖像閾值大全,圖像二值化,超大圖像二值化
電氣專業的計算機小白,寫博文不容易,如果你覺得本文對你有用,請點個贊支持下,謝謝。
總結
以上是生活随笔為你收集整理的opencv学习笔记10:阈值分割的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工行的随心存7号是理财产品吗
- 下一篇: 支付宝怎样关闭刷脸支付