每個人都應該知道的十大OpenCV函式

2022-06-14 09:51:10 字數 3096 閱讀 6190

作者|lazar gugleta

編譯|flin

**|towardsdatascience

這就是為什麼今天我們要看一看在電腦科學領域裡,對於同樣的庫,有哪些函式是你最能從中受益的!

在討論opencv的強大功能之前,讓我們先看看計算機視覺、計算機圖形學和opencv的定義,以便更好地理解我們在這裡所做的工作。

opencv(open source computer vision library)是乙個開源的計算機視覺和機器學習軟體庫。opencv的建立是為了為計算機視覺應用提供乙個通用的基礎設施,並加速機器感知在商業產品中的應用。

該圖書館提供處理和分析影象內容的工具,包括識別數字**中的物件(如人的臉和圖形、文字等)、跟蹤物件的運動、轉換影象、應用機器學習方法以及識別各種影象中的公共元素。

一旦我們解決了這個問題,我們可以從我個人選擇的十大函式開始。(使用python編寫函式)

這個函式必須放在首位,因為要用一張開始你的專案,此函式是必不可少的。從函式名可以猜到,它載入了bgr(blue-green-red)格式的影象。

載入影象後,還可以使用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_nearest: 最近鄰插值

inter_linear: 雙線性插值

inter_cubic: 4×4畫素鄰域上的雙三次插值

inter_lanczos4: 8×8鄰域上的lanczos插值

每張有3個通道,如果我們想把它們分割成不同的,我們可以使用分割函式來實現。

(channel_b, channel_g, channel_r) = cv2.split(img)
如果影象是bgr格式,它會將每個通道分成你定義的三個變數。

如果你已經分割通道,但希望將它們合併到一起,你可以使用merge。

使用vconcat()hconcat()垂直和水平連線(合併)影象。

v表示垂直,h表示水平。

如果要在三維影象(矩陣)中都填充1或0(因為矩陣要求彩色影象具有3個維度)。

size = 200, 200, 3

m = np.zeros(size, dtype=np.uint8)

n = np.ones(size, dtype=np.uint8)

作為乙個附加函式,我想在這裡新增乙個東西,那就是轉置函式。

transpose

如果我們有乙個要轉置的已定義矩陣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更高階的特性。

歡迎關注磐創ai部落格站:

sklearn機器學習中文官方文件:

歡迎關注磐創部落格資源彙總站:

為什麼每個人都應該嘗試Ubuntu

標籤 ubuntu 介紹linux 如果您是位狂熱的 gentoo 或者 slackware 粉絲,請離開,不要繼續讀下去。您可能不會像我說的那樣。但是向您保證,我尊敬並欣賞您的目標,致力於執行您自己可以完成的簡單的 gnu linux 安裝。我會注意保護您選擇的自由。而現在,我開始說我的。如果這兩...

每個人都應該實現自己的人生價值

在之前,寫部落格是為了記憶python的各種規則 語法。現在進入新崗位已一月有餘,覺得自己不能再這樣下去。常言道 好記性不如爛筆頭,如果不給自己的知識 經驗乙個備份,那你的經驗就等於沒有經驗。於是我在思考後在重啟個人 和繼續使用中間選擇了。因為我覺得自己搭建 不適合做穩定長期的服務。之前的自購伺服器...

賈伯斯的建議 每個人都應該學習Python

日前發布的 十四五年規劃 明確提出,發展戰略性新興產業,推動網際網路 大資料 人工智慧等同各產業深度融合。隨之而來的,是關於人工智慧 大資料的熱度討論又一次掀起了一波小高潮。一提到ai 大資料,大多數人第一時間都會聯想到程式設計,而對於程式設計,大家又會下意識的給它打上 程式設計師技能 的標籤。但賈...