<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
腐蝕&膨脹是影象形態學中的兩種核心操作
腐蝕可以描述為是讓影象沿著自己的邊界向內收縮
而膨脹則剛好與收縮相反,可以描述為是讓影象沿著邊界向內擴張。
這兩種操作的邏輯和作用都和上篇講到的使用濾波器做平滑處理有些類似,不同之處在於,腐蝕求的是濾波核內畫素的最小值,而膨脹求的是最大值。並將計算出的值複製給錨點位置的畫素。
作用上同平滑處理類似,可以消除噪聲。
因為腐蝕求的是最小值,膨脹求的是最大值,所以經過腐蝕操作的影象的總體亮度會有所降低,而經過膨脹操作的影象的總體亮度會有所升高。
為方便範例,準備以下圖片素材(test1.jpg):
python中OpenCV使用cv2.erode()方法實現腐蝕操作。
該方法語法如下:
cv2.erode(src, kernel, anchor=None, iterations=None, borderType=None, borderValue=None)
其中kernel這個引數,核,需要手動取建立一個陣列,而不能是像濾波器那樣指定一個大小。
import cv2 import numpy as np img = cv2.imread("test1.jpg") # 建立3*3的陣列作為濾波核 k = np.ones((3, 3), np.uint8) dst = cv2.erode(img, k) cv2.imshow("dst", dst) cv2.waitKey() cv2.destroyAllWindows()
腐蝕效果如下,如圖,我們的魚骨顯得年代更久遠了,魚刺消失、變暗了相當一部分。
python中OpenCV使用cv2.dilate()方法實現膨脹操作。
該方法語法如下:
dilate(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)
可以看出,其引數用法同cv2.erode()的引數。
import cv2 import numpy as np img = cv2.imread("test1.jpg") # 建立16*16的陣列作為核 k = np.ones((16, 16), np.uint8) dst = cv2.dilate(img, k) cv2.imshow("dst", dst) cv2.waitKey() cv2.destroyAllWindows()
膨脹效果如下,如圖所示,圖片眾多魚的亮度明顯變高了。
這種影象效果,也被稱之為“近視眼”效果。
開運算就是將影象先進性腐蝕操作,再進行膨脹操作。其可以用來抹除影象外部的細節(噪聲)。
閉運算則與之相反
閉運算是先對影象進行膨脹操作,在進行腐蝕操作。其可以用來抹除影象的內部細節(噪聲)。
腐蝕和膨脹雖然是逆操作,但是開運算和閉運算都不會使影象恢復原狀。
以 3 為核
程式碼範例如下
import cv2 import numpy as np img = cv2.imread("test1.jpg") k = np.ones((3, 3), np.uint8) dst = cv2.erode(img, k) dst = cv2.dilate(dst, k) cv2.imshow("dst", dst) cv2.waitKey() cv2.destroyAllWindows()
以 10 為核
程式碼範例如下
import cv2 import numpy as np img = cv2.imread("test1.jpg") k = np.ones((10, 10), np.uint8) dst = cv2.dilate(img, k) dst = cv2.erode(dst, k) cv2.imshow("dst", dst) cv2.waitKey() cv2.destroyAllWindows()
在python中OpenCV還提供了morphologyEx()方法(形態學方法),可以用來完成所有常用的形態學運算。
morphologyEx()語法如下:
morphologyEx(src, op, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)
其中
可以供op選擇的操作型別有:
引數值 | 描述 |
---|---|
cv2.MORPH_ERODE | 腐蝕 |
cv2.MORPH_DILATE | 膨脹 |
cv2.MORPH_ OPEN | 開運算,先腐蝕後膨脹 |
cv2.MORPH_CLOSE | 閉運算,先膨脹後腐蝕 |
cv2.MORPH_GRADIENT | 梯度運算,膨脹圖減腐蝕圖 |
cv2.MORPH_TOPHAT | 頂帽運算,原始圖減開運算圖 |
cv2.MORPH_BLACKHAT | 黑帽運算,閉運算圖,減開運算圖 |
接下來我們使用圖片"test2.jpg"(下圖)來繼續下邊的範例:
對“test2.jpg”以 4 為核做梯度運算:
import cv2 import numpy as np img = cv2.imread("test2.jpg") k = np.ones((4, 4), np.uint8) dst = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, k) cv2.imshow("dst", dst) cv2.waitKey() cv2.destroyAllWindows()
梯度運算,即膨脹圖減去腐蝕圖,因為膨脹運算得到的影象中我物體比原圖中的“大”,而腐蝕運算得到的影象中的物體是收縮過的,比原圖中的“小”,所以膨脹的結果減去腐蝕的結果,會得到一個大概的、不精準的輪廓。
test2.jpg梯度運算執行效果如下:
對“test2.jpg”以 4 為核做頂帽運算:
import cv2 import numpy as np img = cv2.imread("test2.jpg") k = np.ones((4, 4), np.uint8) cv2.imshow("img", img) dst = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, k) cv2.imshow("dst", dst) cv2.waitKey() cv2.destroyAllWindows()
頂帽運算,即原圖減去開運算圖,因為開運算抹除了影象的外部細節,所以頂帽運算即“有外部細節的影象 減去 無外部細節的影象”,得到的結果也就只剩外部細節了。
頂帽運算處理效果如下:
對“test2.jpg”以 4 為核做頂帽運算:
import cv2 import numpy as np img = cv2.imread("test2.jpg") k = np.ones((4, 4), np.uint8) dst = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, k) cv2.imshow("dst", dst) cv2.waitKey() cv2.destroyAllWindows()
黑帽運算,即原影象的閉運算減去原影象
因為閉運算可以抹除影象的內部細節,所以黑帽運算即 “無內部細節的影象減去有內部細節的影象”,結果只剩下內部細節。
黑帽運算處理效果如下:
以上就是Python OpenCV形態學運算範例詳解的詳細內容,更多關於Python OpenCV形態學運算的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45