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

opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode()

這篇具有很好參考價(jià)值的文章主要介紹了opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode()。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

形態(tài)學(xué),即數(shù)學(xué)形態(tài)學(xué)(Mathematical Morphology),是圖像處理過程中一個(gè)非常重要的研 究方向。形態(tài)學(xué)主要從圖像內(nèi)提取分量信息,該分量信息通常對(duì)于表達(dá)和描繪圖像的形狀具有 重要意義,通常是圖像理解時(shí)所使用的最本質(zhì)的形狀特征。例如,在識(shí)別手寫數(shù)字時(shí),能夠通
過形態(tài)學(xué)運(yùn)算得到其骨架信息,在具體識(shí)別時(shí),僅針對(duì)其骨架進(jìn)行運(yùn)算即可。形態(tài)學(xué)處理在視覺檢測(cè)、文字識(shí)別、醫(yī)學(xué)圖像處理、圖像壓縮編碼等領(lǐng)域都有非常重要的應(yīng)用。

形態(tài)學(xué)操作主要包含:腐蝕、膨脹、開運(yùn)算、閉運(yùn)算、形態(tài)學(xué)梯度(Morphological Gradient)運(yùn)算、頂帽運(yùn)算(禮帽運(yùn)算)、黑帽運(yùn)算等操作。腐蝕操作和膨脹操作是形態(tài)學(xué)運(yùn)算的基礎(chǔ),
將腐蝕和膨脹操作進(jìn)行結(jié)合,就可以實(shí)現(xiàn)開運(yùn)算、閉運(yùn)算、形態(tài)學(xué)梯度運(yùn)算、頂帽運(yùn)算、黑帽運(yùn)算、擊中擊不中等不同形式的運(yùn)算。

腐蝕原理

腐蝕是最基本的形態(tài)學(xué)操作之一,它能夠?qū)D像的邊界點(diǎn)消除,使圖像沿著邊界向內(nèi)收縮,也可以將小于指定結(jié)構(gòu)體元素的部分去除。

說白了就是讓圖片中的胖子慢慢的變成瘦子

腐蝕用來“收縮”或者“細(xì)化”二值圖像中的前景,借此實(shí)現(xiàn)去除噪聲、元素分割等功能。

例如,在圖 8-1 中,左圖是原始圖像,右圖是對(duì)其腐蝕的處理結(jié)果。

opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode(),opencv,計(jì)算機(jī)視覺,計(jì)算機(jī)視覺,機(jī)器學(xué)習(xí),人工智能
在腐蝕過程中,通常使用一個(gè)結(jié)構(gòu)元來逐個(gè)像素地掃描要被腐蝕的圖像,并根據(jù)結(jié)構(gòu)元和被腐蝕圖像的關(guān)系來確定腐蝕結(jié)果。

例如,在圖 8-2 中,整幅圖像的背景色是黑色的,前景對(duì)象是一個(gè)白色的圓形。圖像左上角的深色小方塊是遍歷圖像所使用的結(jié)構(gòu)元。在腐蝕過程中,要將該結(jié)構(gòu)元逐個(gè)像素地遍歷整幅圖像,并根據(jù)結(jié)構(gòu)元與被腐蝕圖像的關(guān)系,來確定腐蝕結(jié)果圖像中對(duì)應(yīng)結(jié)構(gòu)元中心點(diǎn)位置的像素點(diǎn)的值。

opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode(),opencv,計(jì)算機(jī)視覺,計(jì)算機(jī)視覺,機(jī)器學(xué)習(xí),人工智能

需要注意的是,腐蝕操作等形態(tài)學(xué)操作是逐個(gè)像素地來改變值的,每次判定的點(diǎn)都是與結(jié)構(gòu)元中心點(diǎn)所對(duì)應(yīng)的點(diǎn)。

圖 8-3 中的兩幅圖像表示結(jié)構(gòu)元與前景色的兩種不同關(guān)系。
根據(jù)這兩種不同的關(guān)系來決定,腐蝕結(jié)果圖像中的結(jié)構(gòu)元中心點(diǎn)所對(duì)應(yīng)位置像素點(diǎn)的像素值。

  1. 如果結(jié)構(gòu)元完全處于前景圖像中(圖 8-3 的左圖),就將結(jié)構(gòu)元中心點(diǎn)所對(duì)應(yīng)的腐蝕結(jié)果圖像中的像素點(diǎn)處理為前景色(白色,像素點(diǎn)的像素值為 1)。
  2. 如果結(jié)構(gòu)元未完全處于前景圖像中(可能部分在,也可能完全不在,圖 8-3 的右圖),就將結(jié)構(gòu)元中心點(diǎn)對(duì)應(yīng)的腐蝕結(jié)果圖像中的像素點(diǎn)處理為背景色(黑色,像素點(diǎn)的像素值為 0)。

opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode(),opencv,計(jì)算機(jī)視覺,計(jì)算機(jī)視覺,機(jī)器學(xué)習(xí),人工智能
針對(duì)圖 8-3 中的圖像,腐蝕的結(jié)果就是前景色的白色圓直徑變小。上述結(jié)構(gòu)元也被稱為核。

例如,有需要被腐蝕的圖像 img,其值如下,其中 1 表示白色前景,0 表示黑色背景:

[[0 0 0 0 0]
[0 1 1 1 0]
[0 1 1 1 0]
[0 1 1 1 0]
[0 0 0 0 0]]

有一個(gè)結(jié)構(gòu)元 kernel,其值為:

[[1]
[1]
[1]]

如果使用結(jié)構(gòu)元 kernel 對(duì)圖像 img 進(jìn)行腐蝕,則可以得到腐蝕結(jié)果圖像 rst:

[[0 0 0 0 0]
[0 0 0 0 0]
[0 1 1 1 0]
[0 0 0 0 0]
[0 0 0 0 0]]

這是因?yàn)?,?dāng)結(jié)構(gòu)元 kernel 在圖像 img 內(nèi)逐個(gè)像素遍歷時(shí),只有當(dāng)核 kernel 的中心點(diǎn) “kernel[1,0]”位于 img 中的 img[2,1]、img[2,2]、img[2,3]時(shí),核才完全處于前景圖像中。

所以在腐蝕結(jié)果圖像 rst 中,只有這三個(gè)點(diǎn)的值被處理為 1,其余像素點(diǎn)的值被處理為 0。

上述示例如圖 8-4 所示,其中:

  1. 圖(a)表示要被腐蝕的 img。
  2. 圖(b)是核 kernel。
  3. 圖?中的陰影部分是 kernel 在遍歷 img 時(shí),kernel 完全位于前景對(duì)象內(nèi)部時(shí)的 3 個(gè)全部
    可能位置;此時(shí),核中心分別位于 img[2,1]、img[2,2]和 img[2,3]處。
  4. 圖(d)是腐蝕結(jié)果 rst,即在 kernel 完全位于前景圖象中時(shí),將其中心點(diǎn)所對(duì)應(yīng)的 rst 中像素點(diǎn)的值置為 1;當(dāng) kernel 不完全位于前景圖像中時(shí),將其中心點(diǎn)對(duì)應(yīng)的 rst 中像素點(diǎn)的值置為 0。

opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode(),opencv,計(jì)算機(jī)視覺,計(jì)算機(jī)視覺,機(jī)器學(xué)習(xí),人工智能

函數(shù) cv2.erode() 說明

在 OpenCV 中,使用函數(shù) cv2.erode()實(shí)現(xiàn)腐蝕操作,其語法格式為:

dst = cv2.erode( src, kernel[, anchor[, iterations[, borderType[,
borderValue]]]] )

式中:

  1. dst 是腐蝕后所輸出的目標(biāo)圖像,該圖像和原始圖像具有同樣的類型和大小。

  2. src 是需要進(jìn)行腐蝕的原始圖像,圖像的通道數(shù)可以是任意的。但是要求圖像的深度必須是 CV_8U、CV_16U、CV_16S、CV_32F、CV_64F 中的一種。

  3. kernel 代表腐蝕操作時(shí)所采用的結(jié)構(gòu)類型。它可以自定義生成,也可以通過函數(shù)cv2.getStructuringElement()生成。

  4. anchor 代表 element 結(jié)構(gòu)中錨點(diǎn)的位置。該值默認(rèn)為(-1,-1),在核的中心位置。

  5. iterations 是腐蝕操作迭代的次數(shù),該值默認(rèn)為 1,即只進(jìn)行一次腐蝕操作。

  6. borderType 代表邊界樣式,一般采用其默認(rèn)值 BORDER_CONSTANT。該項(xiàng)的具體值如表 8-1 所示。

opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode(),opencv,計(jì)算機(jī)視覺,計(jì)算機(jī)視覺,機(jī)器學(xué)習(xí),人工智能

  1. borderValue 是邊界值,一般采用默認(rèn)值。在 C++中提供了函數(shù) morphologyDefaultBorderValue()來返回腐蝕和膨脹的“魔力(magic)”邊界值,Python 不支持該函數(shù)。

代碼示例 :使用數(shù)組演示腐蝕的基本原理

代碼如下:

import cv2
import numpy as np
img=np.zeros((5,5),np.uint8)
#對(duì)圖像進(jìn)行賦值
img[1:4,1:4]=1
#設(shè)置卷積核
kernel = np.ones((3,1),np.uint8)
#對(duì)圖像進(jìn)行腐蝕操作
erosion = cv2.erode(img,kernel)
print("img=\n",img)
print("kernel=\n",kernel)
print("erosion=\n",erosion)

運(yùn)行結(jié)果:

img=
 [[0 0 0 0 0]
 [0 1 1 1 0]
 [0 1 1 1 0]
 [0 1 1 1 0]
 [0 0 0 0 0]]
kernel=
 [[1]
 [1]
 [1]]
erosion=
 [[0 0 0 0 0]
 [0 0 0 0 0]
 [0 1 1 1 0]
 [0 0 0 0 0]
 [0 0 0 0 0]]

從本例中可以看到,只有當(dāng)核 kernel 的中心點(diǎn)位于 img 中的 img[2,1]、img[2,2]、img[2,3]處時(shí),核才完全處于前景圖像中。

所以,在腐蝕結(jié)果圖像中,只有這三個(gè)點(diǎn)的值為 1,其余點(diǎn)的值皆為 0。

示例2:使用函數(shù) cv2.erode()完成圖像腐蝕

代碼如下:

import cv2
import numpy as np
o=cv2.imread("fushi.bmp",cv2.IMREAD_UNCHANGED)
#創(chuàng)建結(jié)構(gòu)元素
kernel = np.ones((7,7),np.uint8)
#腐蝕
erosion = cv2.erode(o,kernel)
cv2.imshow("orriginal",o)
cv2.imshow("erosion",erosion)
cv2.waitKey()
cv2.destroyAllWindows()

運(yùn)行效果:
左圖是原始圖像,右圖是腐蝕處理結(jié)果。從圖中可
以看到,腐蝕操作將原始圖像內(nèi)的毛刺腐蝕掉了。
opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode(),opencv,計(jì)算機(jī)視覺,計(jì)算機(jī)視覺,機(jī)器學(xué)習(xí),人工智能

調(diào)節(jié)函數(shù) cv2.erode()的參數(shù),觀察不同參數(shù)控制下的圖像腐蝕效果
使用參數(shù) iterations = 5 對(duì)函數(shù) cv2.erode()的迭代次數(shù)進(jìn)行控制,讓其迭代 5 次。

代碼如下:

import cv2
import numpy as np
o=cv2.imread("fushi.bmp",cv2.IMREAD_UNCHANGED)
#創(chuàng)建結(jié)構(gòu)元素
kernel = np.ones((7,7),np.uint8)
#腐蝕
erosion = cv2.erode(o,kernel,iterations = 5)
cv2.imshow("orriginal",o)
cv2.imshow("erosion",erosion)
cv2.waitKey()
cv2.destroyAllWindows()

從結(jié)果中可以看出迭代的次數(shù)越多,腐蝕的越明顯
opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode(),opencv,計(jì)算機(jī)視覺,計(jì)算機(jī)視覺,機(jī)器學(xué)習(xí),人工智能

更多參數(shù)調(diào)整測(cè)試可以自己多動(dòng)手試試文章來源地址http://www.zghlxwxcb.cn/news/detail-626300.html

到了這里,關(guān)于opencv35-形態(tài)學(xué)操作-腐蝕cv2.erode()的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • OpenCV圖像處理學(xué)習(xí)十,圖像的形態(tài)學(xué)操作——膨脹腐蝕

    OpenCV圖像處理學(xué)習(xí)十,圖像的形態(tài)學(xué)操作——膨脹腐蝕

    一.形態(tài)學(xué)操作概念 圖像形態(tài)學(xué)操作是指基于形狀的一系列圖像處理操作的合集,主要是基于集合論基礎(chǔ)上的形態(tài)學(xué)數(shù)學(xué)對(duì)圖像進(jìn)行處理。 形態(tài)學(xué)有四個(gè)基本操作:腐蝕、膨脹、開操作、閉操作,膨脹與腐蝕是圖像處理中最常用的形態(tài)學(xué)操作手段。 二.形態(tài)學(xué)操作-膨脹 跟卷積

    2024年02月05日
    瀏覽(24)
  • 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ì)地了解這些操作。 原理 它會(huì)侵蝕前景物體的邊界,并從圖像中移除小規(guī)模的細(xì)節(jié),但同時(shí)會(huì)減少感興趣區(qū)域的大小。

    2024年02月05日
    瀏覽(23)
  • 08- OpenCV:形態(tài)學(xué)操作(膨脹與腐蝕 、提取水平與垂直線)

    08- OpenCV:形態(tài)學(xué)操作(膨脹與腐蝕 、提取水平與垂直線)

    目錄 前言 一、膨脹(Dilation)與 腐蝕(Erosion) 二、形態(tài)學(xué)操作 1、開操作(Opening) 2、閉操作(Closing) 3、形態(tài)學(xué)梯度(Morphological Gradient) 4、頂帽 ( top hat) 5、黑帽 (?black hat) 6、相關(guān)的API 7、代碼演示 三、形態(tài)學(xué)操作應(yīng)用-提取水平與垂直線 1、原理方法 2、實(shí)現(xiàn)步驟

    2024年01月17日
    瀏覽(24)
  • 我在Vscode學(xué)OpenCV 圖像處理一(閾值處理、形態(tài)學(xué)操作【連通性,腐蝕和膨脹,開閉運(yùn)算,禮帽和黑帽,內(nèi)核】)

    我在Vscode學(xué)OpenCV 圖像處理一(閾值處理、形態(tài)學(xué)操作【連通性,腐蝕和膨脹,開閉運(yùn)算,禮帽和黑帽,內(nèi)核】)

    例如,設(shè)定閾值為127,然后: ? 將圖像內(nèi)所有像素值大于 127 的像素點(diǎn)的值設(shè)為 255。 ? 將圖像內(nèi)所有像素值小于或等于 127 的像素點(diǎn)的值設(shè)為 0。 cv2.threshold() 和 cv2.adaptiveThreshold() 是 OpenCV 中用于實(shí)現(xiàn)閾值處理的兩個(gè)函數(shù),它們之間有以下區(qū)別: 1.1.1. cv2.threshold(): 這個(gè)函數(shù)

    2024年02月05日
    瀏覽(32)
  • 圖像處理技巧形態(tài)學(xué)濾波之腐蝕操作

    圖像處理技巧形態(tài)學(xué)濾波之腐蝕操作

    歡迎回來,我的圖像處理愛好者們!今天,讓我們深入研究圖像處理領(lǐng)域中的形態(tài)學(xué)計(jì)算。這些非線性的圖像處理技術(shù)允許我們操縱圖像中對(duì)象的形狀和結(jié)構(gòu)。在本系列中,我們將依次介紹四種基本的形態(tài)學(xué)操作:腐蝕、膨脹、開操作和閉操作。 閑話少說,我們直接開始吧!

    2024年02月13日
    瀏覽(30)
  • OpenCV腐蝕函數(shù):cv2.erode()使用

    OpenCV腐蝕函數(shù):cv2.erode()使用

    void cv::erode ( InputArray src , OutputArray dst , InputArray kernel , Point anchor ?=? Point(-1,-1) , int? iterations ?=? 1 , int? borderType ?=? BORDER_CONSTANT , const?Scalar?? borderValue ?=? morphologyDefaultBorderValue() ? ) Python: dst = cv.erode( src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]] ) 通過使用特定

    2024年02月14日
    瀏覽(19)
  • 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) 其中腐蝕和膨脹操作是最基本的操作,其他操作由這兩個(gè)操作變換而來。 ????????用一個(gè)結(jié)構(gòu)元素掃描圖像中每一個(gè)像素,結(jié)構(gòu)元素

    2024年02月09日
    瀏覽(25)
  • OpenCV17-圖像形態(tài)學(xué)操作

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

    圖像腐蝕(Image erosion)可用于減小圖像中物體的大小、填充孔洞或者分離鄰近的物體。腐蝕操作通過對(duì)圖像中的每個(gè)像素應(yīng)用結(jié)構(gòu)元素(也稱為腐蝕內(nèi)核)來實(shí)現(xiàn)。 腐蝕操作的原理是將結(jié)構(gòu)元素與圖像進(jìn)行逐像素的比較。如果結(jié)構(gòu)元素的所有像素與圖像中對(duì)應(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ù)對(duì)輸入圖像中的前景區(qū)域進(jìn)行

    2024年02月09日
    瀏覽(25)
  • OpenCV快速入門:圖像形態(tài)學(xué)操作

    OpenCV快速入門:圖像形態(tài)學(xué)操作

    圖像形態(tài)學(xué)是一門強(qiáng)大而有趣的技術(shù),它通過對(duì)圖像進(jìn)行形態(tài)學(xué)操作,使圖像更適合后續(xù)處理步驟。在本文中,我們將深入探討OpenCV中的圖像形態(tài)學(xué)操作,快速入門這一關(guān)鍵領(lǐng)域。 圖像形態(tài)學(xué)作為數(shù)字圖像處理的一個(gè)分支,致力于通過形態(tài)學(xué)操作實(shí)現(xiàn)對(duì)圖像特征的提取、噪音

    2024年02月05日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包