OpenCV計算機視覺處理 課件 模塊五 形態(tài)學(xué)操作_第1頁
OpenCV計算機視覺處理 課件 模塊五 形態(tài)學(xué)操作_第2頁
OpenCV計算機視覺處理 課件 模塊五 形態(tài)學(xué)操作_第3頁
OpenCV計算機視覺處理 課件 模塊五 形態(tài)學(xué)操作_第4頁
OpenCV計算機視覺處理 課件 模塊五 形態(tài)學(xué)操作_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

OpenCV計算機視覺處理Computervisionprocessing模塊五

形態(tài)學(xué)操作模塊概述形態(tài)學(xué)主要從圖像內(nèi)提取分量信息,該分量信息通常對于表達和描繪圖像的形狀具有重要意義,通常是圖像理解時所使用的最本質(zhì)的形狀特征。形態(tài)學(xué)處理在視覺檢測、文字識別、醫(yī)學(xué)圖像處理、圖像壓縮編碼等領(lǐng)域都有非常重要的應(yīng)用。形態(tài)學(xué),作為圖像處理領(lǐng)域中一顆璀璨奪目的明珠,其戰(zhàn)略地位與價值正隨著技術(shù)的浪潮不斷攀升,日益成為推動行業(yè)變革與創(chuàng)新的關(guān)鍵力量。運用形態(tài)學(xué)進行圖像處理,不僅是對圖像本質(zhì)特征的深刻洞察與精準(zhǔn)提取,更是對黨的二十大報告中“加速推動戰(zhàn)略性新興產(chǎn)業(yè)深度融合與集群化發(fā)展,精心打造以新一代信息技術(shù)、人工智能、生物技術(shù)、新能源、新材料、高端裝備、綠色環(huán)保等為核心的新興增長極,為經(jīng)濟社會發(fā)展注入澎湃動力”這一宏偉藍圖的積極響應(yīng)與實踐。本模塊將介紹形態(tài)學(xué)操作,主要包含腐蝕、膨脹、開運算、閉運算、形態(tài)學(xué)梯度運算、頂帽運算(禮帽運算)、黑帽運算等操作。腐蝕操作和膨脹操作是形態(tài)學(xué)運算的基礎(chǔ),將腐蝕和膨脹操作進行結(jié)合,就可以實現(xiàn)開運算、閉運算、形態(tài)學(xué)梯度運算、頂帽運算、黑帽運算、擊中擊不中等不同形式的運算。學(xué)習(xí)導(dǎo)航學(xué)習(xí)目標(biāo)1.知識目標(biāo)(1)掌握圖像腐蝕膨、脹操作的方法;(2)掌握圖像開運算、閉運算的方法;(3)掌握圖像禮帽、黑帽運算的方法;(4)掌握獲取原始圖像噪聲的方法;(5)掌握獲取比原始圖像的邊緣更暗的邊緣部分的方法;(6)掌握圖像形態(tài)學(xué)梯度運算的方法;(7)掌握構(gòu)造不同形狀核的方法。學(xué)習(xí)目標(biāo)2.能力目標(biāo)(1)使用Python3語言編程;(2)使用cv2.erode()函數(shù)實現(xiàn)圖像的腐蝕操作;(3)使用cv2.dilate()函數(shù)實現(xiàn)圖像的膨脹操作;(4)使用cv2.morphologyEx()函數(shù)實現(xiàn)圖像的去噪;(5)使用cv2.morphologyEx()函數(shù)實現(xiàn)關(guān)閉圖像內(nèi)部的小孔;(6)使用cv2.morphologyEx()函數(shù)實現(xiàn)禮帽運算;(7)使用cv2.morphologyEx()函數(shù)實現(xiàn)黑帽運算;(8)使用OpenCV提供的cv2.morphologyEx()函數(shù)來實現(xiàn)圖像的梯度運算;(9)使用OpenCV提供的cv2.getStructuringElement()函數(shù)來構(gòu)造不同的核并腐蝕圖片。學(xué)習(xí)目標(biāo)3.素質(zhì)目標(biāo)(1)培養(yǎng)學(xué)生邏輯分析能力和推理能力,鍛煉學(xué)生在復(fù)雜情境中做出正確決策的能力;(2)鼓勵學(xué)生在形態(tài)學(xué)操作方面的創(chuàng)新思維和獨特想法;(3)培養(yǎng)學(xué)生團隊協(xié)作能力和在團隊中溝通、協(xié)調(diào)和解決問題的能力。任務(wù)一圖像的腐蝕膨脹

任務(wù)導(dǎo)入在對圖像進行操作的過程中,經(jīng)常會遇到要將圖像進行腐蝕或膨脹的情況。使用OpenCV提供的cv2.erode()和cv2.dilate()函數(shù)實現(xiàn)圖像的腐蝕、膨脹操作。案例代碼1.#第一步:創(chuàng)建

python

文件。引入

OpenCV

庫和

numpy

庫,代碼如下。

2.import

cv2

3.import

numpy

as

np

4.#第二步:讀入圖片,將讀取的變量儲存在變量

o

中,cv2.IMREAD_UNCHANGED會使圖像保持原格式不變。X.png

為準(zhǔn)備好的圖片名,圖片要和代碼文件在同一目錄下,代碼如下。

5.o=cv2.imread("X.png",cv2.IMREAD_UNCHANGED)

6.#第三步:創(chuàng)建

10*10

的核,將核儲存在變量

kernel

中.ones

numpy

的一個內(nèi)置函數(shù),作用是生成參數(shù)為一的數(shù)組。uint8

是無符號八位整型,表示范圍是[0,

255]的整數(shù)。代碼如下。

7.kernel

=

np.ones((10,10),np.uint8)

8.#第四步:對圖進行腐蝕操作并將腐蝕后的圖片儲存在變量

erosion

中,代碼如下。

9.erosion=cv2.erode(o,kernel)

10.#第五步:顯示原始圖像

original

和腐蝕后的圖像

erosion,代碼如下。

11.cv2.imshow("original",o)

12.cv2.imshow("erosion",erosion)

案例結(jié)果原始圖像腐蝕后的圖像案例代碼1.#第七步:調(diào)節(jié)以上代碼中

cv2.erode()函數(shù)的參數(shù)觀察該函數(shù)對圖像的腐蝕效果,將核改為

5*5

大小,并在

cv2.erode(o,

kernel,

iterations=5)加入?yún)?shù)

iterations=5,它的含義是對圖像重復(fù)腐蝕

5

次。完整代碼如圖

5-2

所示,運行該程序,可以看到圖像腐蝕的效果更明顯了。

2.import

cv2

3.import

numpy

as

np

4.o

=

cv2.imread("X.png",

cv2.IMREAD_UNCHANGED)

5.kernel

=

np.ones((5,

5),

np.uint8)

6.erosion

=

cv2.erode(o,

kernel,

iterations=5)

7.cv2.imshow("original",

o)

8.cv2.imshow("erosion",

erosion)

9.cv2.waitKey()

10.cv2.destroyAllWindows()

案例結(jié)果原始圖像腐蝕后的圖像案例代碼1.#第一步:創(chuàng)建

python

文件。引入

OpenCV

庫和

numpy

庫,代碼如下。

2.import

cv2

3.import

numpy

as

np

4.#第二步:寫入代碼讀入圖片,將讀取的變量儲存在變量

o

中,代碼如下。

5.o=cv2.imread("X2.png",cv2.IMREAD_UNCHANGED)

6.#第三步:創(chuàng)建

10*10

的核,將核儲存在變量

kernel

中,代碼如下。

7.kernel

=

np.ones((10,10),np.uint8)

8.#第四步:對圖進行膨脹操作并將膨脹后的圖片儲存在變量

dilation

中,代碼如下。

9.dilation=

cv2.dilate(o,kernel)

10.#第五步:顯示原始圖像

original

和膨脹后的圖像

dilation,代碼如下。

11.cv2.imshow("original",o)

12.cv2.imshow("dilation",dilation)

案例結(jié)果原始圖像膨脹后的圖像案例代碼1.#第七步:調(diào)節(jié)以上代碼中

cv2.dilate()函數(shù)的參數(shù)觀察該函數(shù)對圖像的膨脹效果,將核改為

5*5

大小,并在

cv2.dilate(o,

kernel,

iterations=9)加入?yún)?shù)

iterations=9。iterations=9

的含義是對圖像重復(fù)膨脹

9

次。完整代碼如下所示,運行該程序,結(jié)果如圖

5-4

所示??梢钥吹綀D像膨脹的效果更明顯了。

2.import

cv2

3.import

numpy

as

np

4.o=cv2.imread("X2.png",cv2.IMREAD_UNCHANGED)

5.kernel

=

np.ones((5,5),np.uint8)

6.dilation=

cv2.dilate(o,kernel,iterations=9)

7.cv2.imshow("original",o)

8.cv2.imshow("dilation",dilation)

9.cv2.waitKey()

10.cv2.destroyAllWindows()

案例結(jié)果原始圖像膨脹后的圖像知識拆解1.腐蝕操作(1)知識介紹OpenCV提供了cv2.erode()來實現(xiàn)圖像的腐蝕操作。(2)語法格式dst=cv2.erode(src,kernel,iterations)src:源圖像,即輸入圖像。kernel:結(jié)構(gòu)元素,一個定義了腐蝕操作鄰域的矩陣。這個矩陣通常是一個正方形或矩形,其中所有元素的值都為正,且通常有一個中心點(通常是矩陣的中心元素)。iterations:腐蝕操作的迭代次數(shù)。這意味著腐蝕操作將被連續(xù)執(zhí)行指定的次數(shù),每次操作都基于上一次的結(jié)果。增加迭代次數(shù)將導(dǎo)致更強烈的腐蝕效果。

知識運用1.import

cv2

2.import

numpy

as

np

3.img

=

cv2.imread("cactus.jpg")

#

讀取原圖

4.k

=

np.ones((3,

3),

np.uint8)

#

創(chuàng)建3*3的數(shù)組作為核

5.cv2.imshow("img",

img)

#

顯示原圖

6.dst

=

cv2.erode(img,

k)

#

腐蝕操作

7.cv2.imshow("dst",

dst)

#

顯示腐蝕效果

8.cv2.waitKey()

#

按下任何鍵盤按鍵后

9.cv2.destroyAllWindows()

#

釋放所有窗體

腐蝕示例

知識拆解2.膨脹操作(1)知識介紹OpenCV提供了cv2.dilate()來實現(xiàn)圖像的膨脹操作。(2)語法格式dst=cv2.dilate(src,kernel,iterations)src:源圖像,即輸入圖像。kernel:結(jié)構(gòu)元素,一個定義了膨脹操作鄰域的矩陣。這個矩陣同樣可以是正方形或矩形,其中所有元素的值都為正,且通常有一個中心點(即矩陣的中心元素)。iterations:膨脹操作的迭代次數(shù)。這意味著膨脹操作將被連續(xù)執(zhí)行指定的次數(shù),每次操作都基于上一次的結(jié)果。增加迭代次數(shù)將導(dǎo)致更強烈的膨脹效果。

知識運用1.import

cv2

2.import

numpy

as

np

3.img

=

cv2.imread("sunset.jpg")

#

讀取原圖

4.k

=

np.ones((9,

9),

np.uint8)

#

創(chuàng)建9*9的數(shù)組作為核

5.cv2.imshow("img",

img)

#

顯示原圖

6.dst

=

cv2.dilate(img,

k)

#

膨脹操作

7.cv2.imshow("dst",

dst)

#

顯示膨脹效果

8.cv2.waitKey()

#

按下任何鍵盤按鍵后

9.cv2.destroyAllWindows()

#

釋放所有窗體

膨脹示例

任務(wù)小結(jié)圖像的腐蝕cv2.erode()函數(shù)。任務(wù)一

圖像的腐蝕膨脹圖像的膨脹cv2.dilate()函數(shù)。任務(wù)二圖像開閉運算

任務(wù)導(dǎo)入在對圖像進行操作的過程中,會遇到要對圖像進行去除噪聲以及關(guān)閉圖像內(nèi)部的小孔的情況。通過使用OpenCV提供的cv2.morphologyEx()函數(shù)實現(xiàn)圖像的去噪以及關(guān)閉圖像內(nèi)部小孔的操作。案例代碼1.#第一步:打開

Jupyter

Notebook,創(chuàng)建

python

文件,命名為

open_exp.py。引入

OpenCV庫和

numpy

庫,代碼如下。

2.import

cv2

3.import

numpy

as

np

4.#第二步:讀入圖片,將讀取的變量儲存在變量

img

中。C.png

為準(zhǔn)備好的圖片名,圖片要和代碼文件在同一目錄下,代碼如下。

5.img=cv2.imread("C.png")

6.#第三步:創(chuàng)建

15*15

的核,將核儲存在變量

kernel

中。

7.kernel

=

np.ones((15,15),np.uint8)

8.#第四步:對圖進行開運算并將開運算后的圖片儲存在變量

r

中。

9.r=cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)

10.

cv2.imshow("img",img)

11.cv2.imshow("result",r)

案例結(jié)果原始圖像運算后的圖像案例代碼1.#第一步:打開

Jupyter

Notebook,創(chuàng)建

python

文件,命名為

close_exp.py。引入

OpenCV庫和

numpy

庫,代碼如下。

2.import

cv2

3.import

numpy

as

np

4.#第二步:讀入圖片,將讀取的變量儲存在變量

img

中。O.png

為準(zhǔn)備好的圖片名,圖片要和代碼文件在同一目錄下,代碼如下。

5.img

=

cv2.imread("O.png")

6.#第三步:創(chuàng)建

10*10

的核,將核儲存在變量

kernel

中,代碼如下。

7.kernel

=

np.ones((10,10),np.uint8)

8.#第四步:對圖像進行閉運算并將閉運算后的圖片儲存在變量

r

中,代碼如下。iterations=3

的含義圖像重復(fù)閉運算

3

次。

9.r=cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel,

iterations=3)

10.#第五步:顯示原始圖像

img

和閉運算后的圖像result,代碼如下。

11.cv2.imshow("img",img)

12.cv2.imshow("result",r)

案例結(jié)果原始圖像運算后的圖像知識拆解1.開運算(1)知識介紹OpenCV提供了函數(shù)cv2.morphologyEx()來實現(xiàn)各種形態(tài)學(xué)運算。(2)語法格式:dst=cv2.morphologyEx(src,op,kernel[,anchor[,iterations[,borderType[,borderValue]]]]])dst:代表經(jīng)過形態(tài)學(xué)處理后所輸出的目標(biāo)圖像,該圖像和原始圖像具有同樣的類型和大??;src:代表需要進行形態(tài)學(xué)操作的原始圖像。圖像的通道數(shù)可以是任意的,但是要求圖像的深度必須是CV_8U、CV_16U、CV_16S、CV_32F、CV_64F中的一種;op代表操作類型。知識運用1.import

cv2

2.import

numpy

as

np

3.img

=

cv2.imread("nigella.png")

#

讀取原圖

4.k

=

np.ones((5,

5),

np.uint8)

#

創(chuàng)建5*5的數(shù)組作為核

5.cv2.imshow("img",

img)

#

顯示原圖

6.dst=cv2.morphologyEx(img,cv2.MORPH_ERODE,kernel)7.cv2.imshow("dst",

dst)

#

顯示結(jié)果

8.cv2.waitKey()

#

按下任何鍵盤按鍵后

9.cv2.destroyAllWindows()

#

釋放所有窗體

開運算示例

知識拆解2.閉運算(1)語法介紹OpenCV提供了cv2.morphologyEx()來實現(xiàn)圖像的閉運算。(2)語法格式closing=cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)。知識運用OpenCV提供了cv2.morphologyEx()來實現(xiàn)圖像的閉運算,通過將函數(shù)cv2.morphologyEx()中操作類型參數(shù)op設(shè)置為“cv2.MORPH_CLOSE",可以實現(xiàn)閉運算。如圖是一個身上布滿斑點的小蜘蛛,這些斑點就是圖像的內(nèi)部細節(jié)。先將圖像進行膨脹操作,小蜘蛛身上的斑點(包括小眼睛)就被抹除掉。然后再將圖像進行腐蝕操作,讓膨脹的小蜘蛛縮回原來的大小。

閉運算示例

任務(wù)小結(jié)圖像開運算cv2.morphologyEx()函數(shù)。任務(wù)二

圖像開閉運算圖像閉運算cv2.morphologyEx()函數(shù)。任務(wù)三圖像禮帽黑帽運算

任務(wù)導(dǎo)入在對圖像進行操作的過程中,有時會需要獲取原始圖像的噪聲部分用于分析噪聲特點。通過使用OpenCV提供的cv2.morphologyEx()函數(shù)實現(xiàn)圖像禮帽黑帽運算。案例代碼1.#第一步:打開

Jupyter

Notebook,創(chuàng)建

python

文件,命名為

hat_exp.py。引入

OpenCV庫和

numpy

庫,代碼如下。

2.import

cv2

3.import

numpy

as

np

4.#第二步:讀入圖片,將讀取的變量儲存在變量

img

中。C.png

為準(zhǔn)備好的圖片名,圖片要和代碼文件在同一目錄下,代碼如下。

5.img

=

cv2.imread("C.png",

cv2.IMREAD_UNCHANGED)

6.#第三步:創(chuàng)建

15*15

的核,將核儲存在變量

kernel

中,代碼如下。

7.kernel

=

np.ones((15,15),np.uint8)

8.#第四步:對圖進行禮帽運算并將運算后的圖片儲存在變量

r

中,代碼如下。

9.r

=

cv2.morphologyEx(img,

cv2.MORPH_TOPHAT,

kernel)

10.#第五步:顯示原始圖像

img

和運算后的圖像

result,代碼如下。

11.cv2.imshow("img",img)

12.cv2.imshow("result",r)

案例結(jié)果原始圖像運算后的圖像案例代碼1.#第一步:打開

Jupyter

Notebook,創(chuàng)建

python

文件,命名為blackhat_exp.py。引入OpenCV

庫和

numpy

庫,代碼如下。

2.import

cv2

3.import

numpy

as

np

4.#第二步:讀入圖片,將讀取的變量儲存在變量

img

中。O.png

為準(zhǔn)備好的圖片名,圖片要和代碼文件在同一目錄下,代碼如下。

5.img

=

cv2.imread("O.png",cv2.IMREAD_UNCHANGED)

6.#第三步:創(chuàng)建

15*15

的核,將核儲存在變量

kernel

中,代碼如下。

7.kernel

=

np.ones((15,15),np.uint8)

8.#第四步:對圖進行禮帽運算并將運算后的圖片儲存在變量

r

中,代碼如下。

9.r

=

cv2.morphologyEx(img,

cv2.MORPH_TOPHAT,

kernel)

10.#第五步:顯示原始圖像

img

和運算后的圖像

result,代碼如下。

11.cv2.imshow("img",img)

12.cv2.imshow("result",r)

案例結(jié)果原始圖像運算后的圖像知識拆解1.禮帽運算(1)知識介紹OpenCV提供了cv2.morphologyEx()來實現(xiàn)圖像的禮帽運算,通過將函數(shù)cv2morphologyEx()中操作類型參數(shù)op設(shè)置為“cv2.MORPH_TOPHAT",可以實現(xiàn)禮帽運算。(2)語法格式result=cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)。知識運用1.import

cv2

2.import

numpy

as

np

3.img

=

cv2.imread("spider.png")

#

讀取原圖

4.k

=

np.ones((5,

5),

np.uint8)

#

創(chuàng)建5*5的數(shù)組作為核

5.cv2.imshow("img",

img)

#

顯示原圖

6.dst

=

cv2.morphologyEx(img,

cv2.MORPH_TOPHAT,

k)

#

進行禮帽運算

7.cv2.imshow("dst",

dst)

#

顯示禮帽運算結(jié)果

8.cv2.waitKey()

#

按下任何鍵盤按鍵后

9.cv2.destroyAllWindows()

#

釋放所有窗體

禮帽運算知識拆解2.黑帽運算(1)知識介紹OpenCV提供了cv2.morphologyEx()來實現(xiàn)圖像的黑帽運算,通過將函數(shù)cv2.morphologyEx()中操作類型參數(shù)op設(shè)置為“cv2.MORPH_BLACKHAT",可以實現(xiàn)黑帽運算。(2)語法格式result=cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)。知識運用1.import

cv2

2.import

numpy

as

np

3.img

=

cv2.imread("spider2.png")

#

讀取原圖

4.k

=

np.ones((5,

5),

np.uint8)

#

創(chuàng)建5*5的數(shù)組作為核

5.cv2.imshow("img",

img)

#

顯示原圖

6.dst

=

cv2.morphologyEx(img,

cv2.MORPH_BLACKHAT,

k)

#

進行黑帽運算

7.cv2.imshow("dst",

dst)

#

顯示黑帽運算結(jié)果

8.cv2.waitKey()

#

按下任何鍵盤按鍵后

9.cv2.destroyAllWindows()

#

釋放所有窗體

黑帽運算任務(wù)小結(jié)圖像禮帽運算cv2.morphologyEx()函數(shù)。任務(wù)三

圖像禮帽黑帽運算圖像黑帽運算cv2.morphologyEx()函數(shù)。任務(wù)四圖像形態(tài)學(xué)梯度運算及核函數(shù)

任務(wù)導(dǎo)入在對圖像進行操作的過程中,會遇到要獲取圖像邊緣以及需要使用不同形狀的核處理圖像的情況。使用OpenCV提供的cv2.morphologyEx()函數(shù)實現(xiàn)獲取圖像邊緣的操作以及使用cv2.getStructuringElement()函數(shù)構(gòu)造不同的核。案例代碼1.#第一步:打開

Jupyter

Notebook,創(chuàng)建

python

文件,命名為gradient_exp.py。引入

OpenCV

庫和

numpy

庫,代碼如下。

2.import

cv2

3.import

numpy

as

np

4.#第二步:讀入圖片,將讀取的變量儲存在變量

img

中。X.png

為準(zhǔn)備好的圖片名,圖片要和代碼文件在同一目錄下,代碼如下。

5.img

=

cv2.imread("gradient.png",cv2.IMREAD_UNCHANGED)

6.#第三步:創(chuàng)建

5*5

的核,將核儲存在變量

kernel

中,代碼如下。

7.kernel

=

np.ones((5,5),np.uint8)

8.#第四步:對圖進行形態(tài)學(xué)梯度運算并將運算后的圖片儲存在變量

r

中,代碼如下。

9.r

=

cv2.morphologyEx(img,

cv2.MORPH_GRADIENT,

kernel)

10.#第五步:顯示原始圖像

img

和運算后的圖像

result,代碼如下。

11.cv2.imshow("img",img)

cv2.imshow("result",r)

案例結(jié)果原始圖像形態(tài)學(xué)梯度運算后的圖像案例代碼1.#第一步:打開

Jupyter

Notebook,創(chuàng)建

python

文件。引入

OpenCV

庫和

numpy

庫,代碼如下。

2.import

cv2

3.import

numpy

as

np

4.#第二步:讀入圖片,將讀取的變量儲存在變量

o

中。fang.png

為準(zhǔn)備好的圖片名,圖片要和代碼文件在同一目錄下,代碼如下。

5.import

cv2

6.import

numpy

as

np

7.o

=

cv2.imread("fang.png",

cv2.IMREAD_UNCHANGED)

8.#第三步:用參數(shù)

cv2.MORPH_RECT

創(chuàng)建

120*120

矩形結(jié)構(gòu)的核,將核儲存在變量

kernel1

中,代碼如下。

9.kernel1

=

cv2.getStructuringElement(cv2.MORPH_RECT,

(120,

120))

10.#第四步:用參數(shù)

cv2.MORPH_CROSS

創(chuàng)建

120X120

十字形結(jié)構(gòu)的核,將核儲存在變量

kernel2

中,代碼如下。

11.kernel2=

cv2.getStructuringElement(cv2.MORPH_CROSS

,(120,

120))

12.#第五步:用參數(shù)

cv2.MORPH_ELLIPSE

創(chuàng)建

120X120

橢圓形結(jié)構(gòu)的核,將核儲存在變量

kernel3

中,代碼如下。

13.kernel3

=

cv2.getStructuringElement(cv2.MORPH_ELLIPSE,

(120,

120))

案例代碼15.#第六步:對圖像進行膨脹操作,并將運算后的圖像分別儲存在變量

dst1、

dst2、dst3

中。

16.dst1

=

cv2.dilate(o,

kernel1)

17.dst2

=

cv2.dilate(o,

kernel2)

18.dst3

=

cv2.dilate(o,

kernel3)

19.#第七步:顯示原始圖像

original

和運算后的圖像

dst1、dst2、dst3,代碼如下。

20.cv2.imshow("original",

o)

21.cv2.imshow("dst1",

dst1)

22.cv2.imshow("dst2",

dst2)

23.cv2.imshow("dst3",

dst3)

24.#第八步:銷毀全部窗口,運行該程序。

結(jié)果如圖5-16所示。

25.cv2.waitKey()

26.cv2.destroyAllWindows()

案例結(jié)果原始圖像圖像dst1圖像dst2圖像dst3知識拆解1.形態(tài)學(xué)梯度運算語法(1)知識介紹OpenCV提供了cv2.morphologyEx()函數(shù)來實現(xiàn)圖像的梯度運算,通過將函數(shù)cv2.morp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論