OpenCV_Python —— (4)形態學操作

										原始圖像

在這裏插入圖片描述

一、結構元素

因爲形態學操作其實也是應用卷積來實現的,這個卷積核也叫結構元素。結構元素可以是矩形/橢圓/十字形,可以用cv2.getStructuringElement()來生成不同形狀的結構元素,比如:
在這裏插入圖片描述

二、Erosion腐蝕(白色部分被腐蝕,黑色部分變大)

原理是在原圖的小區域內取局部最小值,其函數是cv2.erode()

erosion = cv2.erode(image, kernel1)
show(erosion)

在這裏插入圖片描述

三、Dilation膨脹(白色部分膨脹,黑色部分變小)

膨脹與腐蝕相反,取的是局部最大值。cv2.dilate()

dilation = cv2.dilate(image, kernel)
show(dilation)

在這裏插入圖片描述

四、Opening開運算

先腐蝕後膨脹叫開運算,其作用是消除小白點。這類形態學操作用cv2.morphologyEx()函數實現

											原圖

在這裏插入圖片描述

# 去除白點
opening = cv2.morphologyEx(image2, cv2.MORPH_OPEN, kernel1)
show(opening)

在這裏插入圖片描述

五、Closing閉運算

閉運算則相反:先膨脹後腐蝕。其作用是消除小黑點。

closing = cv2.morphologyEx(image2, cv2.MORPH_CLOSE, kernel1)
show(closing)

在這裏插入圖片描述

六、先開運算再閉運算

opening = cv2.morphologyEx(image2, cv2.MORPH_OPEN, kernel1)
closing = cv2.morphologyEx(opening, cv2.MORPH_CLOSE, kernel1)
show(closing)

在這裏插入圖片描述

七、Gradient形態學梯度

膨脹圖減去腐蝕圖,dilation - erosion,得到物體的輪廓

gradient = cv2.morphologyEx(image, cv2.MORPH_GRADIENT, kernel1)
show(gradient)

在這裏插入圖片描述

八、Top Hat頂帽/White Hat白帽

原圖減去開運算後的圖:src - opening
相當於把開運算去掉的部分給求出來了

tophat = cv2.morphologyEx(image2, cv2.MORPH_TOPHAT, kernel1)
show(tophat)

在這裏插入圖片描述

九、Black Hat黑帽

閉運算後的圖減去原圖:closing - src
相當於把閉運算去掉的部分給求出來了

blackhat = cv2.morphologyEx(image2, cv2.MORPH_BLACKHAT, kernel1)
show(blackhat)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章