OpenCV 高级形态学函数cv2.morphology()
生活随笔
收集整理的這篇文章主要介紹了
OpenCV 高级形态学函数cv2.morphology()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
morphology:形態學
Python: cv.morphologyEx( src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]] ) -> dstsrc:源圖 op:操作類型,主要是erode和dilate及兩者的組合:cv2.MORPH_ERODE:腐蝕,擴大黑色, dst = erode(src)cv2.MORPH_DILATE:膨脹,擴大白色, dst = dilate(src)cv2.MORPH_OPEN:開運算-open,dst = dilate(erode(src,))cv2.MORPH_CLOSE:閉運算-close,dst = erode(dilate(src,))cv2.MORPH_GRADIENT:梯度運算-gradient,dst = dilate(src) - erode(src)cv2.MORPH_TOPHAT:頂帽運算:dst = src - open(src)cv2.MORPH_BLACKHAT:黑帽運算:dst = close(src) - srccv2.MORPH_HITMISS:hit or miss,擊中或不擊中,只支持值為CV_8UC1類型的二值圖像 kernel: 除了“擊中不擊中”算法需要使用子圖構建kernel外,其他算法都需要使用getStructureElement方法構造。 anchor:表示kernel的中心點位置(注意,這里說的是kernel的中心點位置),負值表示kernel的中心位置(默認值為[-1,-1])。 iterations:腐蝕和膨脹算法各自連續執行次數。例如開運算,iterations=2,表示 erode-erode-dilate-dilate運算,不是交替運算。getStructureElement 表示核的方式,核是二值的,就是只有0/1兩個數值。主要有三種:cv2.MORPH_RECT(矩形)、?cv2.MORPH_CROSS(十字交叉)、?cv2.MORPH_ELLIPSE(橢圓),三種矩陣分別如下:
strc_elem = cv2.getStructuringElement(shape=cv2.MORPH_ELLIPSE,ksize=(13,9)) print(strc_elem)# 以下三個矩陣分別為對應橢圓(cv2.MORPH_ELLIPSE)、矩形(cv2.MORPH_RECT)、十字交叉(cv2.MORPH_CROSS)的形狀。 [[0 0 0 0 0 0 1 0 0 0 0 0 0][0 0 1 1 1 1 1 1 1 1 1 0 0][0 1 1 1 1 1 1 1 1 1 1 1 0][1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1][0 1 1 1 1 1 1 1 1 1 1 1 0][0 0 1 1 1 1 1 1 1 1 1 0 0][0 0 0 0 0 0 1 0 0 0 0 0 0]][[1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1][1 1 1 1 1 1 1 1 1 1 1 1 1]]
[[0 0 0 0 0 0 1 0 0 0 0 0 0][0 0 0 0 0 0 1 0 0 0 0 0 0][0 0 0 0 0 0 1 0 0 0 0 0 0][0 0 0 0 0 0 1 0 0 0 0 0 0][1 1 1 1 1 1 1 1 1 1 1 1 1][0 0 0 0 0 0 1 0 0 0 0 0 0][0 0 0 0 0 0 1 0 0 0 0 0 0][0 0 0 0 0 0 1 0 0 0 0 0 0][0 0 0 0 0 0 1 0 0 0 0 0 0]]
?
總結
以上是生活随笔為你收集整理的OpenCV 高级形态学函数cv2.morphology()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-07-29 Ubantu18.
- 下一篇: 直播礼物特效-漫播直播礼物分析