Python?OpenCV超詳細(xì)講解基本功能
準(zhǔn)備工作
右擊新建的項(xiàng)目,選擇Python File,新建一個Python文件,然后在開頭import cv2
導(dǎo)入cv2庫。
轉(zhuǎn)成灰度圖像
- 調(diào)用imread()方法獲取我們資源文件夾中的圖片lena.png
- cvtColor()方法可以讓我們的圖片轉(zhuǎn)換成任意顏色,第一個參數(shù)是我們要轉(zhuǎn)換的圖片,第二個參數(shù)是要轉(zhuǎn)成的顏色空間,
cv2.COLOR_BGR2GRAY
就是由BGR變?yōu)镚RAY,我們?nèi)粘I钪卸际荝GB三通道順序,而在OpenCV中是BGR順序。 - 使用imshow()方法顯示圖片,窗口名稱為Gray Image
- waitKey(0)這句可以讓窗口一直保持,如果去掉這句,窗口會一閃而過
img=cv2.imread("Resources/lena.png") imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) cv2.imshow("Gray Image",imgGray) cv2.waitKey(0)
我們來看下效果:
高斯模糊
- GaussianBlur()是對圖片進(jìn)行高斯模糊(也稱為高斯平滑),是去除圖像噪聲的一種方法。
- 第一個參數(shù)是圖像,第二個參數(shù)(7,7)是卷積核的大小,只能是奇數(shù)長度的矩陣,第三個參數(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)
我們來看下效果,左為原圖,右是高斯模糊:
邊緣檢測
邊緣檢測Canny()方法中第一個參數(shù)是圖像,第二個參數(shù)是閾值1,第三個參數(shù)是閾值2,用來顯示灰度值在此范圍內(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)行看下效果:
膨脹運(yùn)算
膨脹運(yùn)算中,會用到numpy庫,我們先導(dǎo)入一下:import numpy as np
定義一下大小為5x5的卷積核:kernel=np.ones((5,5),np.uint8),數(shù)值類型是無符號整型
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)
我們看下效果,膨脹使得邊緣線變得更厚,全部連接到一塊。
腐蝕運(yùn)算
我們對剛剛膨脹的圖像進(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)
從左到右依次為膨脹圖像、腐蝕圖像、邊緣檢測圖像
OK,本節(jié)內(nèi)容也是非常簡單的,主要是讓大家熟悉下OpenCV最基礎(chǔ)的應(yīng)用。眼過千遍不如手過一遍,快去動手敲一遍吧~??
到此這篇關(guān)于Python OpenCV超詳細(xì)講解基本功能的文章就介紹到這了,更多相關(guān)Python OpenCV 基本功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Python中request發(fā)送post請求傳遞json參數(shù)的問題
這篇文章主要介紹了Python中request發(fā)送post請求傳遞json參數(shù)的問題,在Python中需要傳遞dict參數(shù),利用json.dumps將dict轉(zhuǎn)為json格式用post方法發(fā)起請求,感興趣的朋友跟隨小編一起看看吧2022-08-08python進(jìn)程管理工具supervisor使用實(shí)例
這篇文章主要介紹了python進(jìn)程管理工具supervisor使用實(shí)例,本文介紹了supervisor的安裝、配置、使用等內(nèi)容,需要的朋友可以參考下2014-09-09Python中導(dǎo)入自定義模塊的幾種方法總結(jié)
這篇文章主要介紹了Python中導(dǎo)入自定義模塊的幾種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01tensorflow實(shí)現(xiàn)讀取模型中保存的值 tf.train.NewCheckpointReader
今天小編就為大家分享一篇tensorflow實(shí)現(xiàn)讀取模型中保存的值 tf.train.NewCheckpointReader,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02centos 安裝Python3 及對應(yīng)的pip教程詳解
這篇文章主要介紹了centos 安裝Python3 及對應(yīng)的pip的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06python 實(shí)現(xiàn)讀取csv數(shù)據(jù),分類求和 再寫進(jìn) csv
這篇文章主要介紹了python 實(shí)現(xiàn)讀取csv數(shù)據(jù),分類求和 再寫進(jìn) csv,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05