版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年中國加密鍵盤行業(yè)發(fā)展趨勢研究報告
- 家電運輸合同范本
- 木板訂購合同范本
- 木門加盟合同范本
- 木樁供應(yīng)合同范本
- 定制木房合同范本
- 家電代理合同范本
- 木門供銷合同范本
- 2026重慶聯(lián)合產(chǎn)權(quán)交易所集團招聘面試題及答案
- 2026泰山財產(chǎn)保險公司招聘面試題及答案
- 2025中原農(nóng)業(yè)保險股份有限公司招聘67人筆試備考重點試題及答案解析
- 2025中原農(nóng)業(yè)保險股份有限公司招聘67人備考考試試題及答案解析
- 2025年度河北省機關(guān)事業(yè)單位技術(shù)工人晉升高級工考試練習(xí)題附正確答案
- 交通運輸布局及其對區(qū)域發(fā)展的影響課時教案
- 2025年中醫(yī)院護理核心制度理論知識考核試題及答案
- GB/T 17981-2025空氣調(diào)節(jié)系統(tǒng)經(jīng)濟運行
- 比亞迪儲能項目介紹
- 2025年9月廣東深圳市福田區(qū)事業(yè)單位選聘博士11人備考題庫附答案
- 糖尿病足潰瘍VSD治療創(chuàng)面氧自由基清除方案
- 《公司治理》期末考試復(fù)習(xí)題庫(含答案)
- 自由職業(yè)者項目合作合同協(xié)議2025年
評論
0/150
提交評論