欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?OpenCV超詳細(xì)講解基本功能

 更新時間:2022年04月01日 15:55:03   作者:振華OPPO  
OpenCV用C++語言編寫,它具有C?++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac?OS,OpenCV主要傾向于實(shí)時視覺應(yīng)用,并在可用時利用MMX和SSE指令,本篇文章帶你了解OpenCV的基本功能

準(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)文章

最新評論