做者|Lazar Gugleta
編譯|Flin
來源|towardsdatasciencepython
計算機視覺和計算機圖形學如今很是流行,由於它們與人工智能有着普遍的聯繫,它們的主要共同點是使用同一個OpenCV庫,以便像人類同樣對數字圖像或視頻(CV)或生成圖像(CG)有高層次理解。app
這就是爲何今天咱們要看一看在計算機科學領域裏,對於一樣的庫,有哪些函數是你最能從中受益的!機器學習
在討論OpenCV的強大功能以前,讓咱們先看看計算機視覺、計算機圖形學和OpenCV的定義,以便更好地理解咱們在這裏所作的工做。函數
計算機視覺是一個跨學科的領域,涉及如何使計算機得到對數字圖像或視頻的高層次理解。從工程的角度來看,它試圖令人類視覺系統可以完成的任務自動化,也就是說,它但願像人類同樣「看懂」世界。工具
計算機圖形學是計算機科學中的一個分支,它研究如何藉助計算機生成圖像。現在,計算機圖形學是數字攝影、電影、視頻遊戲、手機和計算機顯示等許多專業應用領域的核心技術。學習
OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫。OpenCV的創建是爲了爲計算機視覺應用提供一個通用的基礎設施,並加速機器感知在商業產品中的應用。ui
該圖書館提供處理和分析圖像內容的工具,包括識別數字照片中的對象(如人的臉和圖形、文本等)、跟蹤對象的運動、轉換圖像、應用機器學習方法以及識別各類圖像中的公共元素。人工智能
一旦咱們解決了這個問題,咱們能夠從我我的選擇的十大函數開始。(使用Python編寫函數).net
這個函數必須放在首位,由於要用一張圖片開始你的項目,此函數是必不可少的。從函數名能夠猜到,它加載了BGR(Blue-Green-Red)格式的圖像。3d
import cv2 import matplotlib.pyplot as plot image = cv2.imread('data.png') #load image plot.imshow(image) #show image
加載圖像後,還可使用cvtColor中的不一樣標誌將其轉換爲不一樣的配色方案。
cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
下面是cvtColor的一些其餘標誌:COLOR_BGR2GRAY、COLOR_BGR2HSV和COLOR_BGR2YUV等。
這是雙向的,例如,COLOR_YUV2BGR也是可能的。
有時你只須要一個不一樣於原來大小的圖像,因此resize就是你須要的函數。
cv2.resize(image, dimension, interpolation = cv2.INTER_AREA)
它獲取原始圖像,並按尺寸建立一個新圖像。尺寸定義爲:
dimension = (width, height)
插值是一種重採樣圖片的方法,在個人例子中,它使用基於INTER_AREA的區域間重採樣,還有更多相似的方法
每張圖片有3個通道,若是咱們想把它們分割成不一樣的圖片,咱們可使用分割函數來實現。
(channel_b, channel_g, channel_r) = cv2.split(img)
若是圖像是BGR格式,它會將每一個通道分紅你定義的三個變量。
若是你已經分割通道,但但願將它們合併到一塊兒,你可使用merge。
cv2.merge(channel_b, channel_g, channel_r)
使用vconcat()
,hconcat()
垂直和水平鏈接(合併)圖像。
v表示垂直,h表示水平。
cv2.vconcat([image1, image2]) cv2.hconcat([image1, image2])
若是要在三維圖像(矩陣)中都填充1或0(由於矩陣要求彩色圖像具備3個維度)。
size = 200, 200, 3 m = np.zeros(size, dtype=np.uint8) n = np.ones(size, dtype=np.uint8)
做爲一個附加函數,我想在這裏添加一個東西,那就是轉置函數。
若是咱們有一個要轉置的已定義矩陣mat,咱們所要作的就是直接對mat使用這個函數:
import numpy as np mat = np.array([[1, 2, 3], [4, 5, 6]]) mat_transpose = mat.transpose() print(mat_tranpose)
獲得輸出:
[[1 4] [2 5] [3 6]] #original input [[1, 2, 3] [4, 5, 6]]
這主要是爲初學者準備的,可是下節課咱們將介紹OpenCV更高級的特性。
原文連接:https://towardsdatascience.com/top-10-opencv-functions-everyone-has-to-know-about-945f33de8f6f
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方文檔:
http://sklearn123.com/
歡迎關注磐創博客資源彙總站:
http://docs.panchuang.net/