opencv python 基本知識

2021-10-02 14:48:24 字數 2661 閱讀 6213

cv2.imread_color彩色 cv2.imread_grayscale黑白

img=cv2.imread(『cat,jpg』,option) #img是乙個矩陣bgr格式

cv2.imshow(『name』,img)#顯示影象

cv2.waitkey(0)#等待時間

cv2.destroyallwindows()#關閉視窗##這個三個可以封裝成乙個函式

img.shape#img的行列和維數

cv2.imwrite(『cat.png』,img)#儲存

type(img)#格式img.size畫素值img.dtype資料格式

cat=img(0:200,0:200)#擷取部分影象

b,g,r=cv2.split(img)#三通道影象

img=cv2,merge(b,g,r)#還原

cat_img=img.capy()#複製影象

cat_img[:,:,0]=0

cat_img[:,:,1]=0

#顯示一顏色通道

二值化

retval, dst= cv2.threshold(src, thresh, maxval,

type

) retval 得到的閾值值

dst 輸出圖

src 輸入圖,單通道

thres 閾值

maxvalue 超過閾值賦予的值

type 二值化操作的演算法有5種型別

• cv2.thresh_binary

• cv2.thresh_binary_inv

• cv2.thresh_trunc

• cv2.thresh_tozero

• cv2.thresh_tozero_inv

濾波

cv2.blur(img,(3,3))均值濾波

cv2.boxfilter(img,-1,(3,3),normalize=rrue)方框濾波

cv2.gaussianblur(img,(5,5),1)高斯

cv2.dedianblur(img,5)中值濾波

腐蝕操作

kernel=np.ones((5,5),np.uint8)卷積核

cv2.erode(img,kernel,iterations=1)腐蝕一次

膨脹cv2.dilate(img,kernel,iterations=1)

開運算先腐蝕後膨脹(胖)

閉運算先膨脹後腐蝕(瘦)

cv2.morphologyex(img,cv2.morph_open,kernel)

cv2.morphologyex(img,cv2.morph_close,kernel)

梯度運算(開運算-閉運算)得到邊界

cv2.morphologyex(img,cv2.morph_gradient,kernel)

禮帽(原始-開運算)和黑帽(閉-原始)

步驟

1進行高斯濾波

2計算梯度和方向

3應用非極大值抑制

4應用雙閾值檢測

5抑制孤立的弱邊緣

contours,hierarchy = cv2.findcontours(img,mode,methon)

#輪廓檢測

#繪製輪廓

外接矩形

x,y,w,h = cv2.boundingrect(img)

img = cv2.rectangle(img,

(x,y)

,(x+w,y+h),(

0,0,

255),2

)

cv2.matchtemplate(image, templ, method, result=none, mask=none)

image:待搜尋影象

templ:模板影象

result:匹配結果

method:計算匹配程度的方法

method:

cv_tm_sqdiff 平方差匹配法

cv_tm_ccorr 相關匹配法

cv_tm_ccoeff 相關係數匹配法 -1~1

cv_tm_sqdiff_normed 歸一化平方差匹配法

cv_tm_ccorr_normed 歸一化相關匹配法

cv_tm_ccoeff_normed 歸一化相關係數匹配法

opencv python 2 基本操作

輸出結果為 39 118181 為該畫素點的brg畫素值。opencv讀取彩色影象的畫素順序為bgr而非rgb。也可輸出單個通道的值 px img 10,10,0 print px 輸出結果為 39可通過相同的方式修改畫素值 img 10,10 255,255,255 也可使用numpy中的arra...

opencv python 4 基本變換

cv2.cvtcolor 函式可以將影象在各個色彩空間之間變換,如rgb,bgr,灰度影象,yuv,hsv等。opencv提供了超過150種色彩空間轉換方法 f i for i in dir cv2 if i.startswith color print f 輸出為所有轉換方式。cv2.resize...

OpenCV Python模糊處理

import cv2 as cv import numpy as np 均值模糊 defblur demo img dst cv.blur img,5 5 cv.imshow blur image dst import cv2 as cv import numpy as np 中值模糊 defmed...