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...