1.計算仿射矩陣
1)方程法
cv2.getaffinetransform(src, dst), src和dst分別代表原座標和變換後的座標,且均為3行2列的二維ndarray。
1import
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以角度為單位,非弧度)。
1import
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...