国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換

這篇具有很好參考價值的文章主要介紹了OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

腐蝕

膨脹

開運(yùn)算

閉運(yùn)算

形態(tài)學(xué)梯度

禮帽

黑帽

形態(tài)學(xué)操作的關(guān)系

構(gòu)建橢圓/圓形的核


形態(tài)學(xué)操作是根據(jù)圖像形狀進(jìn)行的簡單操作。一般情況下對二值化圖像進(jìn) 行的操作。需要輸入兩個參數(shù),一個是原始圖像,第二個被稱為結(jié)構(gòu)化元素或 核,它是用來決定操作的性質(zhì)的。兩個基本的形態(tài)學(xué)操作是腐蝕和膨脹。他們 的變體構(gòu)成了開運(yùn)算,閉運(yùn)算,梯度等。

腐蝕

就像土壤侵蝕一樣,這個操作會把前景物體的邊界腐蝕掉。這是怎么做到的呢?卷積核沿著圖像滑動,如果與卷積核對應(yīng)的圖像的所有像素值都是1,那么該區(qū)域的所有像素值就是1,否則為0。用于去除白噪聲和斷開兩個連在一起的物體等。用到的函數(shù)是cv2.erode()。

第一個參數(shù)表示輸入圖像。

第二個參數(shù)表示定義的卷積核。

第三個參數(shù)表示迭代腐蝕的次數(shù),通俗的說就是腐蝕多少次。

import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('../data/image/13.png',0)
"""腐蝕"""
#創(chuàng)建一個5*5的值為1的卷積核
kernel = np.ones((5,5),np.uint8)
#腐蝕運(yùn)算,iteration=1,迭代腐蝕1次
erosion = cv2.erode(img,kernel,iterations=1)
#顯示原圖
plt.subplot(1,2,1),plt.imshow(img,cmap = "gray")
plt.title("Original")
#顯示腐蝕后的圖
plt.subplot(1,2,2),plt.imshow(erosion,cmap ="gray")
plt.title("corrosion")
plt.show()

?文章來源地址http://www.zghlxwxcb.cn/news/detail-447904.html

OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換

這里注意一個題外話,在使用plt.imshow()函數(shù)顯示二值圖像時,需要設(shè)置cmap = "gary",否則顯示是不正常的彩色圖像,如:

OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換

膨脹

膨脹與腐蝕相反,與卷積核對應(yīng)的原圖像的像素值中只要有一個是1,那么該區(qū)域的所有像素點(diǎn)的值都為1。所以膨脹會增加圖像的白色區(qū)域。一般在去噪聲時,先用腐蝕在膨脹,因?yàn)楦g在去掉白噪聲的同時,也會使前景對象變小,所以使用膨脹放大前景。用到的函數(shù)是cv2.dilate()。

第一個參數(shù)表示原圖像。

第二個參數(shù)表示定義的卷積核。

第三個參數(shù)表示迭代膨脹的次數(shù)。

import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('../data/image/13.png',0)

#創(chuàng)建一個5*5的值為1的卷積核
kernel = np.ones((5,5),np.uint8)
#iteration=1,迭代膨脹1次
dilation = cv2.dilate(img,kernel,iterations = 1)
#顯示原圖
plt.subplot(1,2,1),plt.imshow(img,cmap = "gray")
plt.title("Original")
#顯示處理后的圖
plt.subplot(1,2,2),plt.imshow(dilation,cmap ="gray")
plt.title("dilation")
plt.show()

?

OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換

開運(yùn)算

先進(jìn)行腐蝕運(yùn)算再進(jìn)行膨脹運(yùn)算就叫做開運(yùn)算,被用來去除噪聲??梢韵日{(diào)用腐蝕函數(shù),在調(diào)用膨脹函數(shù),也可以直接使用cv2.morphologyEx()函數(shù)實(shí)現(xiàn)。

第一個參數(shù)表示輸入圖像。

第二個參數(shù)表示形態(tài)學(xué)操作的類型。

  • cv2.MORPH_OPEN:開運(yùn)算
  • cv2.MOPRH_CLOSE:閉運(yùn)算
  • cv2.MPRPH_GRADIENT:形態(tài)學(xué)梯度
  • cv2.MORPH_TOPHAT:禮帽
  • cv2.MORPH_BLACKHAT:黑帽

第三個參數(shù)表示定義的卷積核。

?

import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('../data/image/14.png')
img1= cv2.imread('../data/image/15.png')
img2= cv2.imread('../data/image/13.png')
#創(chuàng)建一個7*7的值為1的卷積核
kernel = np.ones((7,7),np.uint8)
"""開運(yùn)算"""
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
"""閉運(yùn)算"""
closing = cv2.morphologyEx(img1, cv2.MORPH_CLOSE, kernel)
"""形態(tài)學(xué)梯度"""
gradient = cv2.morphologyEx(img2, cv2.MORPH_GRADIENT, kernel)
#顯示原圖
plt.subplot(3,2,1),plt.imshow(img,cmap = "gray")
plt.title("Original")
#顯示處理后的圖
plt.subplot(3,2,2),plt.imshow(opening,cmap ="gray")
plt.title("opening")

plt.subplot(3,2,3),plt.imshow(img1,cmap = "gray")
plt.title("Original")
#顯示處理后的圖
plt.subplot(3,2,4),plt.imshow(closing,cmap ="gray")
plt.title("closing")

plt.subplot(3,2,5),plt.imshow(img2,cmap = "gray")
plt.title("Original")
#顯示處理后的圖
plt.subplot(3,2,6),plt.imshow(gradient,cmap ="gray")
plt.title("gradient")
plt.show()

OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換

閉運(yùn)算

先進(jìn)行膨脹運(yùn)算再進(jìn)行腐蝕運(yùn)算就叫做閉運(yùn)算,被用來填充前景物體中的小洞,或者前景物體上的小黑點(diǎn)。程序和函數(shù)參數(shù)見開運(yùn)算。

形態(tài)學(xué)梯度

結(jié)果像是前景物體的輪廓,像是膨脹的結(jié)果減去腐蝕的結(jié)果。程序和函數(shù)參數(shù)見開運(yùn)算。

禮帽

原始圖像與進(jìn)行開運(yùn)算之后的圖像的差。函數(shù)參數(shù)見開運(yùn)算。下面的例子對比了使用使用函數(shù)計(jì)算的結(jié)果和不使用函數(shù)計(jì)算的結(jié)果是否相同。

img = cv2.imread('../data/image/13.png')
#創(chuàng)建一個11*11的值為1的卷積核
kernel = np.ones((11,11),np.uint8)
#開運(yùn)算
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
#原圖像減去開運(yùn)算后的圖
tophat1 = img - opening
#禮帽
tophat2 = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)

plt.subplot(1,4,1),plt.imshow(img,cmap = "gray")
plt.title("Original")
plt.subplot(1,4,2),plt.imshow(opening ,cmap = "gray")
plt.title("Opening")
plt.subplot(1,4,3),plt.imshow(tophat1,cmap = "gray")
plt.title("tophat1")
plt.subplot(1,4,4),plt.imshow(tophat2,cmap = "gray")
plt.title("tophat2")
plt.show()

?

OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換

?

黑帽

進(jìn)行閉運(yùn)算之后的圖像與原始圖像的差。

img = cv2.imread('../data/image/13.png')
#創(chuàng)建一個11*11的值為1的卷積核
kernel = np.ones((11,11),np.uint8)
#閉運(yùn)算
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
#閉運(yùn)算減去原圖像
blackhat1 =closing - img
#禮帽
blackhat2 = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)

plt.subplot(1,4,1),plt.imshow(img,cmap = "gray")
plt.title("Original")
plt.subplot(1,4,2),plt.imshow(closing,cmap = "gray")
plt.title("closing")
plt.subplot(1,4,3),plt.imshow(blackhat1,cmap = "gray")
plt.title("blackhat1")
plt.subplot(1,4,4),plt.imshow(blackhat2,cmap = "gray")
plt.title("blackhat2")
plt.show()

?

OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換

形態(tài)學(xué)操作的關(guān)系

開運(yùn)算 = 先腐蝕,后膨脹

閉運(yùn)算 = 先膨脹,后腐蝕

形態(tài)學(xué)梯度 = 膨脹 - 腐蝕

禮帽 = 原圖 - 開運(yùn)算

黑帽 = 閉運(yùn)算 - 原圖

OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換

構(gòu)建橢圓/圓形的核

使用cv2.getStructuringElement()函數(shù)。

第一個參數(shù)表示核的形狀。

  • cv2.MOPRH_RECT:矩形核
  • cv2.MORPH_ELLIPSE:橢圓核
  • cv2.MORPH_CROSS:十字交叉核

第二個參數(shù)表示核的大小

OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換

?

到了這里,關(guān)于OpenCv-Python學(xué)習(xí)筆記(九):形態(tài)學(xué)轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 《數(shù)字圖像處理-OpenCV/Python》連載:形態(tài)學(xué)圖像處理

    《數(shù)字圖像處理-OpenCV/Python》連載:形態(tài)學(xué)圖像處理

    本書京東 優(yōu)惠購書鏈接 https://item.jd.com/14098452.html 本書CSDN 獨(dú)家連載專欄 https://blog.csdn.net/youcans/category_12418787.html 形態(tài)學(xué)圖像處理是基于形狀的圖像處理,基本思想是利用各種形狀的結(jié)構(gòu)元進(jìn)行形態(tài)學(xué)運(yùn)算,從圖像中提取表達(dá)和描繪區(qū)域形狀的結(jié)構(gòu)信息。形態(tài)學(xué)運(yùn)算的數(shù)學(xué)原

    2024年02月19日
    瀏覽(114)
  • python-opencv之形態(tài)學(xué)操作(腐蝕和膨脹)原理詳解

    python-opencv之形態(tài)學(xué)操作(腐蝕和膨脹)原理詳解

    Removing noise. Isolation of individual elements and joining disparate elements in an image. Finding of intensity bumps or holes in an image. 最基本的形態(tài)操作是侵蝕和擴(kuò)張。讓我們更詳細(xì)地了解這些操作。 原理 它會侵蝕前景物體的邊界,并從圖像中移除小規(guī)模的細(xì)節(jié),但同時會減少感興趣區(qū)域的大小。

    2024年02月05日
    瀏覽(23)
  • OpenCV(圖像處理)-基于Python-形態(tài)學(xué)處理-開運(yùn)算、閉運(yùn)算、頂帽、黑帽運(yùn)算

    OpenCV(圖像處理)-基于Python-形態(tài)學(xué)處理-開運(yùn)算、閉運(yùn)算、頂帽、黑帽運(yùn)算

    OpenCV形態(tài)學(xué)是一種基于OpenCV庫的數(shù)字圖像處理技術(shù),主要用于處理圖像的形狀、結(jié)構(gòu)和空間關(guān)系。它包括一系列圖像處理工具和算法,包括膨脹、腐蝕、開運(yùn)算、閉運(yùn)算、形態(tài)學(xué)梯度、頂帽、黑帽等。 通過對圖像進(jìn)行形態(tài)學(xué)操作可以實(shí)現(xiàn)一些重要的圖像處理任務(wù),比如去除噪

    2024年02月09日
    瀏覽(23)
  • OpenCV 09(形態(tài)學(xué))

    OpenCV 09(形態(tài)學(xué))

    形態(tài)學(xué)指一系列處理圖像 形狀特征 的圖像處理技術(shù). 形態(tài)學(xué)的基本思想是利用一種特殊的結(jié)構(gòu)元(本質(zhì)上就是卷積核)來測量或提取輸入圖像中相應(yīng)的形狀或特征,以便進(jìn)一步進(jìn)行圖像分析和目標(biāo)識別。 這些處理方法基本是對 二進(jìn)制圖像 進(jìn)行處理, 即黑白圖像 卷積核決定著圖

    2024年02月07日
    瀏覽(22)
  • OpenCV 形態(tài)學(xué)

    OpenCV 形態(tài)學(xué)

    形態(tài)學(xué)處理之前需要將圖像進(jìn)行二值化處理, 然后我們需要設(shè)定一個卷積核, 最后將像素上每個點(diǎn)都完成卷積計(jì)算. 形態(tài)學(xué)很多高級處理的基礎(chǔ), 有很多作用: 消除毛刺、填充空隙、檢測邊緣,檢查拐角(使用十字形卷積核) 腐蝕作用和膨脹相反, 用來腐蝕減小白色區(qū)域, 常用來消

    2024年02月22日
    瀏覽(16)
  • OpenCV之形態(tài)學(xué)操作

    OpenCV之形態(tài)學(xué)操作

    形態(tài)學(xué)操作包含以下操作: 腐蝕 (Erosion) 膨脹 (Dilation) 開運(yùn)算 (Opening) 閉運(yùn)算 (Closing) 形態(tài)梯度 (Morphological Gradient) 頂帽 (Top Hat)黑帽(Black Hat) 其中腐蝕和膨脹操作是最基本的操作,其他操作由這兩個操作變換而來。 ????????用一個結(jié)構(gòu)元素掃描圖像中每一個像素,結(jié)構(gòu)元素

    2024年02月09日
    瀏覽(25)
  • OpenCv之圖像形態(tài)學(xué)

    OpenCv之圖像形態(tài)學(xué)

    目錄 一、形態(tài)學(xué) ?二、圖像全局二值化 ?三、自適應(yīng)閾值二值化 四、腐蝕操作 五、獲取形態(tài)學(xué)卷積核 六、膨脹操作 七、開運(yùn)算 八、閉運(yùn)算 定義: 指一系列處理圖像形狀特征的圖像處理技術(shù) 形態(tài)學(xué)的基本思想是利用一種特殊的結(jié)構(gòu)元(本質(zhì)上就是卷積核)來測量或提取輸入圖

    2024年02月16日
    瀏覽(13)
  • 10 OpenCV 形態(tài)學(xué)的應(yīng)用

    10 OpenCV 形態(tài)學(xué)的應(yīng)用

    adaptiveThreshold 二值化算子 想法:把獲取二值化的圖片輪廓,對直線進(jìn)行開閉運(yùn)算

    2024年03月13日
    瀏覽(19)
  • OpenCV17-圖像形態(tài)學(xué)操作

    OpenCV17-圖像形態(tài)學(xué)操作

    圖像腐蝕(Image erosion)可用于減小圖像中物體的大小、填充孔洞或者分離鄰近的物體。腐蝕操作通過對圖像中的每個像素應(yīng)用結(jié)構(gòu)元素(也稱為腐蝕內(nèi)核)來實(shí)現(xiàn)。 腐蝕操作的原理是將結(jié)構(gòu)元素與圖像進(jìn)行逐像素的比較。如果結(jié)構(gòu)元素的所有像素與圖像中對應(yīng)位置的像素都

    2024年02月08日
    瀏覽(27)
  • OpenCV(三十一):形態(tài)學(xué)操作

    OpenCV(三十一):形態(tài)學(xué)操作

    ??????1.形態(tài)學(xué)操作 ? ? ? ?OpenCV 提供了豐富的函數(shù)來進(jìn)行形態(tài)學(xué)操作,包括腐蝕、膨脹、開運(yùn)算、閉運(yùn)算等。下面介紹一些常用的 OpenCV 形態(tài)學(xué)操作函數(shù): 腐蝕操作(Erosion): erode(src, dst, kernel, anchor, iterations, borderType, borderValue) 該函數(shù)對輸入圖像中的前景區(qū)域進(jìn)行

    2024年02月09日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包