python中opencv的使用方法是什么-創(chuàng)新互聯

創(chuàng)新互聯www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

成都創(chuàng)新互聯公司-專業(yè)網站定制、快速模板網站建設、高性價比古田網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式古田網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋古田地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

這篇文章將為大家詳細講解有關python中opencv的使用方法是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

OpenCV是一個旨在解決計算機視覺問題的Python庫。OpenCV最初由Intel在1999年開發(fā),但是后來由Willow Garage資助。它支持很多編程語言,如C++,Python,Java等等。它也支持多種平臺,包括Windows,Linux和MacOS。

OpenCV Python只是一個與Python一起使用的原始C++庫的包裝類。通過使用它,所有OpenCV數組結構都能被轉化為NumPy數組或從NumPy數組轉化而來。這樣就可以輕松地將其與其他使用NumPy的庫集成。例如,SciPy和Matplotlib等庫。

OpenCV的基礎操作?

Opencv能完成以下從加載圖像到調整大小等基本操作:

使用OpenCV加載圖片

查看圖片形狀/分辨率

顯示圖片

調整圖像大小

1. 使用OpenCV加載圖片

Import cv2  
 # colored Image  
Img = cv2.imread ("Penguins.jpg",1)  
 # Black and White (gray scale)  
Img_1 = cv2.imread ("Penguins.jpg",0)

如以上代碼所示,第一個要求是導入OpenCV模塊。

之后,我們可以用imread模塊讀取圖片。參數中的1代表這是一個彩色圖片。如果這個參數的值是0,就意味著這個將被導入的圖片是黑白圖片。這里的圖片名稱是“Penguins”。很簡單吧?

2. 查看圖片形狀/分辨率

我們可以使用shape子函數來輸出圖片的形狀??纯匆韵麓a:

Import cv2  
# Black and White (gray scale)  
Img = cv2.imread ("Penguins.jpg",0)  
Print(img.shape)

對于圖片的形狀,我們指的是NumPy數組的形狀。執(zhí)行代碼之后你將會看到這個矩陣由768行和1024列組成。

3. 顯示圖片

使用OpenCV顯示圖片非常簡單和直接。思考以下圖片:

import cv2  
 
# Black and White (gray scale)  
Img = cv2.imread ("Penguins.jpg",0)  
cv2.imshow("Penguins", img)  
 
cv2.waitKey(0)  
# cv2.waitKey(2000)  
cv2.destroyAllWindows()

正如你所見,我們首先使用imread導入圖片。我們需要一個輸出窗口來顯示這個圖片,對吧? 

然后,我們等待用戶事件。waitKey使窗口保持靜態(tài)直到用戶按下一個鍵。傳入的參數是以毫秒為單位的時間。

最后,我們根據waitForKey的參數使用destroyAllWindows關閉窗口。

4. 調整圖像大小

類似地,調整圖像大小非常簡單。 這里有另一個代碼段:

import cv2  
# Black and White (gray scale)  
img = cv2.imread ("Penguins.jpg",0)  
resized_image = cv2.resize(img, (650,500))  
cv2.imshow("Penguins", resized_image)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

這里,resize函數用于將圖像大小調整為所需的形狀。這里的參數是新調整大小后的圖像的形狀。

與之前的代碼相比,剩下的代碼非常簡單,對嗎?

我相信你們對企鵝很好奇,這是我們想要輸出的圖片!

這是另一個向resize函數傳遞參數的方法??纯聪旅娴谋硎痉椒ǎ?/p>

Resized_image = cv2.resize(img, int(img.shape[1]/2), int(img.shape[0]/2)))

這里,我們得到的新圖像大小是原始圖像的一半。

使用OpenCV進行人臉檢測

這看起來很復雜,但實際上很容易。 讓我?guī)懔私庹麄€過程,然后你也會有同樣的感受。

第一步:想一想我們的先決條件。我們首先需要一個圖像。然后,我們需要創(chuàng)建一個級聯分類器,它最后會給我們提供面部特征。

第二步:這一步要使用到OpenCV讀取圖像和特征文件。所以這個時候,原始數據點是NumPy數組的形式。

我們要做的就是搜索面部 NumPy n維數組的行和列的值。這是具有面部矩形坐標的數組。

第三步:最后一步是使用矩形面框顯示圖像。

看看下面的圖片,這里我以圖片的形式總結了上述的三個步驟以便于閱讀:

非常直接明了,對吧?

python中opencv的使用方法是什么

首先,如之前所述,我們創(chuàng)建CascadeClassifier對象來提取面部特征。包含面部特征的XML文件路徑是此處的參數。

下一步是讀取一個包含面部的圖片,并且使用COLOR_BGR2GREY將其轉化為黑白圖片。接下來,我們搜索圖像的坐標。這是使用detectMultiScale來實現的。

你問什么坐標?它是面部矩形的坐標。scaleFactor被用來減小5%的形狀值,直到找到面部。因此,總的來說,值越小,準確度越高。

最后,這張臉被顯示到窗口。

給識別的人臉添加矩形面框

這個邏輯很簡單——就像使用for循環(huán)語句一樣簡單。看看下面的圖片:

python中opencv的使用方法是什么

我們通過傳遞參數(比如圖片對象,輪廓框的RGB值和矩形的寬度),使用cv2.rectangle來定義方法以創(chuàng)建一個矩形。

讓我們來看看面部檢測的完整代碼:

import cv2  
# Create a CascadeClassifier Object  
face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")  
# Reading the image as it is  
img = cv2.imread("photo.jpg") 
# Reading the image as gray scale image  
gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
# Search the co-ordintes of the image  
faces = face_cascade.detectMultiScale(gray_img, scaleFactor = 1.05,  minNeighbors=5)  
for x,y,w,h in faces:  
    img = cv2.rectangle(img, (x,y), (x+w,y+h),(0,255,0),3)  
resized = cv2.resize(img, (int(img.shape[1]/7),int(img.shape[0]/7)))   
cv2.imshow("Gray", resized)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

關于python中opencv的使用方法是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

當前題目:python中opencv的使用方法是什么-創(chuàng)新互聯
URL地址:http://muchs.cn/article12/cosggc.html

成都網站建設公司_創(chuàng)新互聯,為您提供自適應網站、微信小程序、商城網站建站公司、品牌網站制作靜態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都網頁設計公司