91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中opencv的使用方法是什么

發布時間:2020-08-05 11:51:08 來源:億速云 閱讀:309 作者:小新 欄目:編程語言

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

OpenCV是一個旨在解決計算機視覺問題的Python庫。OpenCV最初由Intel在1999年開發,但是后來由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子函數來輸出圖片的形狀。看看以下代碼:

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

對于圖片的形狀,我們指的是NumPy數組的形狀。執行代碼之后你將會看到這個矩陣由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使窗口保持靜態直到用戶按下一個鍵。傳入的參數是以毫秒為單位的時間。

最后,我們根據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函數傳遞參數的方法。看看下面的表示方法:

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

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

使用OpenCV進行人臉檢測

這看起來很復雜,但實際上很容易。 讓我帶你了解整個過程,然后你也會有同樣的感受。

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

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

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

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

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

非常直接明了,對吧?

python中opencv的使用方法是什么

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

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

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

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

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

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

python中opencv的使用方法是什么

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

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

唐山市| 蒲江县| 昆明市| 常山县| 榆树市| 分宜县| 桂东县| 丹寨县| 连南| 宣城市| 高唐县| 名山县| 高清| 财经| 固原市| 新龙县| 潜江市| 抚顺市| 乌什县| 保康县| 梨树县| 班戈县| 开化县| 江城| 吉安县| 延边| 霍邱县| 营山县| 临城县| 青阳县| 来宾市| 大英县| 合阳县| 双辽市| 克什克腾旗| 吴川市| 修文县| 泸溪县| 上高县| 张北县| 获嘉县|