openCV簡要 02 閾值與平滑處理

2021-10-25 13:51:28 字數 2407 閱讀 3595

1.閾值處理

ret,det=cv2.threshold(src,thresh,maxval,

type

)#threshold函式原型:

#det為輸出圖

#src為輸入圖,thresh為設定的閾值,maxval表示矩陣中每個分量的最大值

#type表示閾值處理型別

#cv2.thresh_binary 超過閾值部分取maxval,否則取0

#cv2.thresh_binary_inv 與binary相反

#cv2.thresh_trunc 大於閾值部分設定為閾值,否則不變(截斷)

#cv2.thresh_tozero 大於閾值部分不變,否則為0

#cv2.thresh_tozero_inv 與前者相反

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.thrreshold(img,

127,

255,cv2.thresh_tozero_inv)

title=

['1'

,'2'

,'3'

,'4'

,'5'

,'6'

]images=

[img,thresh1,..

.,thresh5]

import matplotlib as plt

for i in

range(6

):plt.subplot(2,

3,i+1)

,plt.imshow(images[i]

,'gray'

) plt.title(title[i]

) plt.xticks(

),plt.yticks(

)plt.show(

)

2.平滑處理

濾波目的:對影象進行濾波操作以降低影象中的椒鹽雜訊

矩陣卷積的計算過程:由此進入 @寰宇的行者 原創

import cv2

import numpy as np

#線性濾波:通過與卷積和的線性

#1.均值濾波

blur=cv2.blur(img,(3

,3))

#用3*3的卷積核對img求卷積(bgr全部)

#一般情況下,卷積核行數或列數取奇數

cv2.imshow(

'blur'

,blur)

cv2.waitkey(0)

cv2.destroyallwindow(

)#均值濾波:在卷積核範圍內的元素求均值(卷積核可以有不同位置的權值,這裡全部為1)

#2.方框濾波

#1)歸一化的(等效於均值濾波)

box=cv2.boxfilter(img,-1

,(3,

3),normalize=

true

)#2)不歸一化的(不求平均值,只計算和,最終結果=min(255,和))

box=cv2.boxfilter(img,-1

,(5,

5),normalize=

false

)#3.高斯濾波

#根據其他元素到中心的距離遠近,卷積核的權值滿足高斯分布,以這個卷積核進行卷積運算

gaussian=cv2.gaussianblur(img,(5

,5),

1)#gaussianblur原型:gaussianblur(src,卷積核,x軸標準偏差,y軸標準偏差)

#4.中值濾波

#把卷積核蓋住的範圍內所有的元素的中位數作為中心元素

median=cv2.medianblur(img,5)

#展示所有結果

res=np.hstack(

(blur,gaussian,median)

)#還有vstack,是將結果棧垂直儲存

#可以列印出矩陣

print

(res)

cv2.imshow(

'res'

,res)

cv2.waitkey(0)

cv2.destroyallwindow(

)

opencv 閾值操作

閾值分割5種方法 尋找閾值2種方法 double cv threshold inputarray src,outputarray dst,double thresh,double maxval,int type 引數 含義src 輸入,要求是單通道影象 thresh 門限值maxval 超過門限的畫...

OpenCV 閾值處理 二 自適應閾值

因此在同一副影象上的不同區域採用的是不同的閾值,從而使我們能在亮度不同的情況下得到更好的結果。自適應閾值函式 dst cv.adaptivethreshold src,maxvalue,adaptivemethod,thresholdtype,blocksize,c dst 引數 src 8位單通道...

opencv雙閾值化

對於影象中有明顯的雙分界特徵,我們考慮用雙閾值方法進行二值化操作。根據雙閾值操作方法,對於8位灰度圖應用該閾值化方法操作時,預先設定好特 定的閾值量thresh1,thresh2,並且thresh 如下 include opencv2 highgui highgui.hpp include open...