形態學-腐蝕操作
import cv2
import matplotlib.pyplot as plt
import numpy as np
get_ipython(
).run_line_magic(
'matplotlib'
,'inline'
)#腐蝕dige
img = cv2.imread(
'dige.png'
)cv2.imshow(
'img'
,img)
cv2.waitkey(0)
cv2.destroyallwindows(
)kernel = np.ones((5
,5),np.uint8)
erosion = cv2.erode(img,kernel,iterations =2)
# kernel 為5x5方格 ; 迭代次數2
cv2.imshow(
'erosion'
,erosion)
cv2.waitkey(0)
cv2.destroyallwindows(
)#腐蝕pie
)#不同迭代次數對比
kernel = np.ones((30
,30),np.uint8)
erosion_1= cv2.erode(pie,kernel,iterations =1)
erosion_2= cv2.erode(pie,kernel,iterations =2)
erosion_3= cv2.erode(pie,kernel,iterations =3)
res = np.hstack(
(erosion_1,erosion_2,erosion_3)
)cv2.imshow(
'res'
,res)
cv2.waitkey(0)
cv2.destroyallwindows(
)
形態學-膨脹操作#匯入
img = cv2.imread(
'dige.png'
)cv2.imshow(
'img'
,img)
cv2.waitkey(0)
cv2.destroyallwindows(
)#去毛刺
kernel = np.ones((3
,3),np.uint8)
dige_erosion = cv2.erode(img,kernel,iterations =1)
# kernel 為3x3方格 ; 迭代次數
cv2.imshow(
'erosion'
,erosion)
cv2.waitkey(0)
cv2.destroyallwindows(
)#膨脹操作
)#不同迭代次數
kernel = np.ones((30
,30),np.uint8)
dilate_1= cv2.dilate(pie,kernel,iterations =1)
dilate_2= cv2.dilate(pie,kernel,iterations =2)
dilate_3= cv2.dilate(pie,kernel,iterations =3)
res = np.hstack(
(dilate_1,dilate_2,dilate_3)
)cv2.imshow(
'res'
,res)
cv2.waitkey(0)
cv2.destroyallwindows(
)
開運算與閉運算#開運算:先腐蝕,再膨脹
img = cv2.imread(
'dige.png'
)kernel = np.ones((3
,3),np.uint8)
opening = cv2.morphologyex(img,cv2.morph_open,kernel)
cv2.imshow(
'opening'
,opening)
cv2.waitkey(0)
cv2.destroyallwindows(
)#閉運算:先膨脹,再腐蝕
img = cv2.imread(
'dige.png'
)kernel = np.ones((3
,3),np.uint8)
closing = cv2.morphologyex(img,cv2.morph_close,kernel)
cv2.imshow(
'closing'
,closing)
cv2.waitkey(0)
cv2.destroyallwindows(
)
梯度運算#梯度=膨脹-腐蝕
#得到膨脹與腐蝕
)#邊界資訊
gradient = cv2.morphologyex(pie,cv2.morph_gradient,kernel)
cv2.imshow(
'gradient'
,gradient)
cv2.waitkey(0)
cv2.destroyallwindows(
)
禮帽與黑帽
• 禮帽=原始輸入-開運算
• 黑帽=閉運算-原始輸入
#禮帽
img = cv2.imread(
'dige.png'
)tophat = cv2.morphologyex(img,cv2.morph_tophat,kernel)
cv2.imshow(
'tophat'
,tophat)
cv2.waitkey(0)
cv2.destroyallwindows(
)#黑帽
img = cv2.imread(
'dige.png'
)blackhat = cv2.morphologyex(img,cv2.morph_blackhat,kernel)
cv2.imshow(
'blackhat'
,blackhat)
cv2.waitkey(0)
cv2.destroyallwindows(
)
基於python的opencv教程
第一次寫部落格,學習是要有輸入與輸出的,所謂教學相長。所以我想試著自己寫乙份教程,算是對自己的學習總結吧,部落格的排版比較直男,請湊合看吧。首先建議的ide是pycharm,opencv的庫直接pip安裝就好,最好大家有一定的python基礎。第一部分是關於圖象讀取和儲存。import cv2imp...
基於python的opencv學習
dst cv2.sobel src,ddept,dx,dy,ksize ddepth 影象的深度,一般設為 1ksize sobel運算元的大小 白到黑是正數,黑到白是負數,所有的負數都會被截斷為0,因此要使用convertscaleabs取絕對值2 拉普拉斯金字塔 1 低通濾波 2 縮小尺寸pyr...
基於Python的OpenCV人臉檢測
注意 本文只是人臉檢測,人臉識別的實現請參見本人另一篇部落格 基於opencv tensorflow keras實現人臉識別 提前做的準備 1 和說明 import cv2 as cv import numpy as np defface detect demo 人臉檢測函式 gray cv.cvt...