本文先了解乙個簡單閾值函式,以了解乙個閾值演算法的具體引數。
然後比較不同閾值函式的區別。
同樣的,先用一副圖說明本文重要大綱:
# 先將影象矩陣進行二值化
# 也可以直接將影象用灰度值讀入,其中0就表示用灰度讀圖
cv2.imshow('img',img)
_,img1 = cv2.threshold(img,100,250,cv2.thresh_binary)
# 這個函式返回兩個值,第二個值才是二值化後的影象矩陣
# 最後乙個引數表示一種二值化演算法
# 閾值設定為100,
# 250表示大於100的畫素值會被重新賦值為250
cv2.imshow('img',img1)
# cv2.waitkey()
cv2.destroyallwindows()
############ 以下比較不同簡單二值化演算法的區別
# 先進行不同演算法的二值化
ret,img1 = cv2.threshold(img,127,255,cv2.thresh_binary)
# 從名字可以看出一點來,binary是二元的意思,這裡指要麼0,要麼指定的乙個值(255)
print(ret)
ret,img2 = cv2.threshold(img,127,255,cv2.thresh_binary_inv)
# 注意到inv表示逆,全寫是inverse
ret,img3 = cv2.threshold(img,127,255,cv2.thresh_trunc)
# 注意到truncate表示截斷的意思。這個函式不再是二元,而是對超過某個值的部分進行處理,否則並不會處理。
ret,img4 = cv2.threshold(img,127,255,cv2.thresh_tozero)
# 實際上,這也是一種階段,對大於某乙個值的畫素值進行調整,與trunc不同的是,這裡變為0,而不是最大值
ret,img5 = cv2.threshold(img,127,255,cv2.thresh_tozero_inv)
import numpy as np
import matplotlib.pyplot as plt
#用這個模組來畫圖顯示,這個庫和opencv有些不同,可參考前面的部落格
# # 先定義以下圖的圖題和影象矩陣
titles = ['original','binary','binary_inv','trunc','tozero','tozero_inv']
imgs = [img,img1,img2,img3,img4,img5]
for i in range(6):
plt.subplot(2,3,i+1)#分別畫出每乙個圖
plt.imshow(imgs[i],'gray')
plt.title(titles[i])#寫出圖題
plt.show()
閾的粵語發音 閾 閾的意思 閾的解釋
基本字義 閾 閾 y 1 門坎 立不中門,行不履閾 2 界限 視閾。聽閾。詳細字義 閾閾 y 名 1 門檻 threshold 閾,門榍也。說文 閾,門限也。玉篇 柣謂之閾。爾雅 注 閾,門限。不踐閾。禮記 曲禮 賓入不中門,不履閾。禮記 玉藻 見兄弟不逾閾。左傳 僖公二十二年 思不出乎門閾。漢書 ...
OpenCV常用基本處理函式(4)簡單變換,閾值等
2 下面的 none 本應該是輸出影象的尺寸,但是因為後邊我們設定了縮放因子3 因此這裡為 none 4 res cv2.resize img,none,fx 2,fy 2,interpolation cv2.inter cubic 5 or6 這裡呢,我們直接設定輸出影象的尺寸,所以不用設定縮放因...
Python OpenCV實現簡單的人臉檢測
匯入opencv庫 import cv2 載入特徵分類器 opencv自帶 face cascade cv2.cascadeclassifier haarcascade frontalface default.xml 開啟電腦攝像頭 capture cv2.videocapture 0 獲得攝像頭捕...