opencv學習筆記(1)

2022-08-21 16:45:12 字數 4348 閱讀 5301

1.計算仿射矩陣

1)方程法

cv2.getaffinetransform(src, dst), src和dst分別代表原座標和變換後的座標,且均為3行2列的二維ndarray。

1

import

cv22

import

numpy as np

3 src = np.array([[0,0],[200,0],[0,200]],np.float32)

4 dst = np.array([[0,0],[100, 0], [0,100]], np.float32)

5 a =cv2.getaffinetransform(src, dst)

6 print(a)

7 #array([[0.5, 0. , 0. ],

8 # [0. , 0.5, 0. ]])

2) 矩陣法

cv2.getrotationmatrix2d(center, angle, scale),center為變換中心點的座標,scale是等比例縮放的係數,angle是逆時針旋轉的角度(angle以角度為單位,非弧度)。

1

import

numpy as np

2import

cv23 a = cv2.getrotationmatrix2d((40, 50), 30, 0.5)

4print

(a.dtype)5#

dtype('float64')

6print

(a)7

#[[ 0.4330127 0.25 10.17949192]8#

[-0.25 0.4330127 38.34936491]]

2.插值演算法

cv2.warpaffine(src, m, dsize[, dst[, flages[, bordermode[, bordervalue ]]])

引數解釋

src輸入影象矩陣

m2行3列的仿射變換矩陣

dsize

二元元組(寬,高),輸出影象的大小

flags

插值法:inte_nearest、inte_linear(預設)等

bordermode

填充模式:border_constant

bordervalue

當bordermoder=brder_constant時的填充值

1

#coding=utf-82#

通過改變仿射矩陣完成隊影象的縮小、平移、旋轉等操作

3import

numpy as np

4import

cv2567

defwarp_affine(imgpath):

8 img =cv2.imread(imgpath, cv2.imread_grayscale)

9 h, w = img.shape[:2]

10 a1 = np.array([[0.5, 0, 0], [0, 0.5, 0]], dtype=np.float32)11#

縮小兩倍

12 d1 = cv2.warpaffine(img, a1, (w, h), bordervalue=125)

13 a2 = np.array([[0.5, 0, 2 / 4], [0, 0.5, h / 4]], dtype=np.float32)14#

先縮小兩倍,再平移

15 d2 = cv2.warpaffine(img, a2, (w, h), bordervalue=125)16#

在d2基礎上,繞影象的中心點旋轉

3.線性極座標函式 linearpolar

dst = linearpolar(src, center, maxradius, flags)

該函式有兩個缺點:第一,極座標變換的步長是不可控制的,導致得到的圖可能不是很理想;第二,該函式只能對整個圓內區域,而無法對指定的圓環區域進行極座標變換。

1

#coding=utf-82#

線性極座標函式 linearpolar3#

dst = linearpolar(src, center, maxradius, flags)4#

dst,輸出影象矩陣,其尺寸和src是相同的5#

src,輸入影象矩陣6#

center,極座標變化中心7#

maxradius,極座標變換的最大距離8#

flags,插值演算法,同函式resize、waraffine的插值演算法

4.對數極座標函式

1

#coding=utf-82#

對數極座標函式logpolar3#

dst = logpolar(src, center, m, flags)4#

dst,輸出影象矩陣,尺寸與src相同5#

src,輸入影象矩陣(單或多通道矩陣06#

m,係數,該值大一點效果會好一點7#

flags, warp_fill_outliers:笛卡爾座標系對數極座標變換8#

warp_inverse_map:對數極座標向笛卡爾座標變換

OPENCV學習筆記 1

剛上研一,本身想對嵌入式進行一番學習,結果實習的時候用opencv搞影象識別,有點讓人失望。不過畢竟是ai的電腦視覺方面的東西,所以也就報有很大熱情學的,業餘還得鞏固基礎c c 的書 等把c primer再看一遍後進軍sdk了,得等多久到mfc啊 csdn開了部落格,寫了些,後來才發現有學生大本營,...

OpenCV 學習筆記1

將opencv和vs配置成功後,開始編寫程式。值得說明的是,在opencv中,有以下兩種形式的函式呼叫,一種定義在highgui c.h中,例如 cvnamedwindow test cv window autosize 這種形式的函式呼叫要使用cv作為函式的限定 一種定義在highgui.hpp中...

opencv學習筆記 1

cvloadimage iplimage cvloadimage const char filename,int flags cv load image color filename 要被讀入的檔案的檔名 包括字尾 flags 指定讀入影象的顏色和深度 指定的顏色可以將輸入的轉為3通道 cv loa...