1.
幾何變換的實際意義
從線性代數角度來看,在乙個向量
[x,y]
前面乘以乙個矩陣
其本質上,是將向量
[x,y]
轉換到[a1,b1] , [a2,b2]
的座標系中,即實現向量
[x,y]
的位移
2.擴充套件縮放
opencv
提供cv2.resize(
圖形檔案,(
x方向長度,
y方向高度),轉換模式)或者
cv2.resize(
圖形檔案,
fx=x
方向倍數,
fy=y
方向倍數,轉換模式
)來實現圖形的縮放
例:img_resize =cv2.resize(img,(2*col,2*row),interpolation=cv2.inter_cubic)
其中轉換模式
interpolation=
常用有cv2.inter_area, cv2.inter_cubic,cv2.inter_linear
等,不同之處在於插值方式不同。
結果如下:
3.平移
平移操作本質上,是將每個畫素的座標都乘以乙個位移矩陣,使得畫素座標變換來實現位移。
opencv
提供cv2.warpaffine(
圖形檔案,位移矩陣,(位移後視窗長度,位移後視窗寬度)
)來實現位移,
所以位移操作的重點在於構建位移矩陣。位移矩陣格式如下:
x方向位移距離,ty為
y方向位移距離。具體推導如下:
例:m=np.float32([[1,0,50],[0,1,50]])
img_change=cv2.warpaffine(img,m,(2*col,2*row))
其結果如下:
4.旋轉 選擇操作首先要使用
cv2.getrotationmatrix2d((
旋轉中心x座標
,旋轉中心y座標
) ,
旋轉角度
, 旋轉後視窗大小倍數
) 來構建旋轉矩陣。旋轉矩陣格式如下:
再將這個旋轉矩陣,傳給函式
cv2.warpaffine()
來實現旋轉。其原理和位移操作一樣。
例:rotate_m = cv2.getrotationmatrix2d((col/2,row/2),45,0.8)
img_rotate = cv2.warpaffine(img,rotate_m,(col,row))
其結果如下:
OpenCV Python 核心操作 邊緣檢測
邊緣檢測其實就是利用乙個高通濾波器和影象進行卷積,影象中的邊緣 即高頻部分 在濾波器 的作用下,保留高頻部分,也就是留下邊緣 或者換乙個角度考慮,對影象進行 x方向和 y方向的差分,在影象的邊緣差分結果會比別的地方大,再利用差分可以計算出梯度,邊緣總會出現在梯度最大的地方 1.幾個基本運算元 常用的...
OpenCV Python 核心操作 模板匹配
在opencv裡,模板匹配和卷積原理很像,模板在原影象上從原點開始滑動,計算模板與 影象被模板覆蓋的地方 的差別程度,這個差別程度的計算方法在opencv裡有 6種,然後將每次計算的結果放入乙個矩陣裡,作為結果輸出。假如原圖形是 axb大小,而模板是 axb大小,則輸出結果的矩陣是 a a 1 x ...
linux降核心版本 Linux核心降級操作
linux 核心降級操作 環境 機器型號 hp proliant bl685c g7 系統版本 redhat 6.0 核心版本 2.6.32 504.16.2.el6.x86 64 ip位址 10.221.18.47 操作目的 因為移動補丁下發平台下發了核心公升級補丁,導致系統重啟後,核心版本被從原...