溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python?OpenCV基本功能怎么用

發(fā)布時(shí)間:2022-04-02 09:22:19 來(lái)源:億速云 閱讀:237 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“Python OpenCV基本功能怎么用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Python OpenCV基本功能怎么用”吧!

準(zhǔn)備工作

右擊新建的項(xiàng)目,選擇Python File,新建一個(gè)Python文件,然后在開(kāi)頭import cv2導(dǎo)入cv2庫(kù)。

Python?OpenCV基本功能怎么用

轉(zhuǎn)成灰度圖像

  • 調(diào)用imread()方法獲取我們資源文件夾中的圖片lena.png

  • cvtColor()方法可以讓我們的圖片轉(zhuǎn)換成任意顏色,第一個(gè)參數(shù)是我們要轉(zhuǎn)換的圖片,第二個(gè)參數(shù)是要轉(zhuǎn)成的顏色空間,cv2.COLOR_BGR2GRAY就是由BGR變?yōu)镚RAY,我們?nèi)粘I钪卸际荝GB三通道順序,而在OpenCV中是BGR順序。

  • 使用imshow()方法顯示圖片,窗口名稱為Gray Image

  • waitKey(0)這句可以讓窗口一直保持,如果去掉這句,窗口會(huì)一閃而過(guò)

img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow("Gray Image",imgGray)
cv2.waitKey(0)

我們來(lái)看下效果:

Python?OpenCV基本功能怎么用

高斯模糊

  • GaussianBlur()是對(duì)圖片進(jìn)行高斯模糊(也稱為高斯平滑),是去除圖像噪聲的一種方法。

  • 第一個(gè)參數(shù)是圖像,第二個(gè)參數(shù)(7,7)是卷積核的大小,只能是奇數(shù)長(zhǎng)度的矩陣,第三個(gè)參數(shù)是Sigma X,默認(rèn)為0

  • imshow()顯示原圖和灰度圖

img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imgGray,(7,7),0)
cv2.imshow("Gray Image",imgGray)
cv2.imshow("Blur Image",imgBlur)
cv2.waitKey(0)

我們來(lái)看下效果,左為原圖,右是高斯模糊:

Python?OpenCV基本功能怎么用

邊緣檢測(cè)

邊緣檢測(cè)Canny()方法中第一個(gè)參數(shù)是圖像,第二個(gè)參數(shù)是閾值1,第三個(gè)參數(shù)是閾值2,用來(lái)顯示灰度值在此范圍內(nèi)的邊緣線。

img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imgGray,(7,7),0)
imgCanny=cv2.Canny(img,150,200)

cv2.imshow("Gray Image",imgGray)
cv2.imshow("Blur Image",imgBlur)
cv2.imshow("Canny Image",imgCanny)
cv2.waitKey(0)

我們運(yùn)行看下效果:

Python?OpenCV基本功能怎么用

膨脹運(yùn)算

膨脹運(yùn)算中,會(huì)用到numpy庫(kù),我們先導(dǎo)入一下:import numpy as np定義一下大小為5x5的卷積核:kernel=np.ones((5,5),np.uint8),數(shù)值類型是無(wú)符號(hào)整型

kernel=np.ones((5,5),np.uint8)
img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imgGray,(7,7),0)
imgCanny=cv2.Canny(img,150,200)
imgDialation=cv2.dilate(imgCanny,kernel,iterations=1)

cv2.imshow("Gray Image",imgGray)
cv2.imshow("Blur Image",imgBlur)
cv2.imshow("Canny Image",imgCanny)
cv2.imshow("Dialation Image",imgDialation)
cv2.waitKey(0)

我們看下效果,膨脹使得邊緣線變得更厚,全部連接到一塊。

Python?OpenCV基本功能怎么用

腐蝕運(yùn)算

我們對(duì)剛剛膨脹的圖像進(jìn)行腐蝕運(yùn)算,就可以得到閉合的邊緣圖像。

kernel=np.ones((5,5),np.uint8)
img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imgGray,(7,7),0)
imgCanny=cv2.Canny(img,150,200)
imgDialation=cv2.dilate(imgCanny,kernel,iterations=1)

cv2.imshow("Gray Image",imgGray)
cv2.imshow("Blur Image",imgBlur)
cv2.imshow("Canny Image",imgCanny)
cv2.imshow("Dialation Image",imgDialation)
cv2.waitKey(0)

從左到右依次為膨脹圖像、腐蝕圖像、邊緣檢測(cè)圖像

Python?OpenCV基本功能怎么用

到此,相信大家對(duì)“Python OpenCV基本功能怎么用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI