OpenCV常用基本處理函式(4)簡單變換,閾值等

2022-01-11 01:35:14 字數 2484 閱讀 7709

2#下面的 none 本應該是輸出影象的尺寸,但是因為後邊我們設定了縮放因子3#

因此這裡為 none

4 res=cv2.resize(img,none,fx=2,fy=2,interpolation=cv2.inter_cubic)5#

or6#這裡呢,我們直接設定輸出影象的尺寸,所以不用設定縮放因子

這裡的第乙個引數為旋轉中心,第二個為旋轉角度,第三個為旋轉後的縮放因子4#

可以通過設定旋轉中心,縮放因子,以及視窗大小來防止旋轉後超出邊界的問題

5 m=cv2.getrotationmatrix2d((cols/2,rows/2),45,0.6)

# 第三個引數是輸出影象的尺寸中心

dst=cv2.warpaffine(img,m,(2*cols,2*rows))

仿射變換有旋轉 (線性變換),平移 (向量加).縮放(線性變換),錯切,反轉;

仿射變換是一種二維座標到二維座標之間的線性變換,它保持了二維圖形的「平直性」(直線經過變換之後依然是直線)和「平行性」(二維圖形之間的相對位置關係保持不變,平行線依然是平行線,且直線上點的位置順序不變)

基本步驟是這樣的:

1.影象都是由矩陣來表示;

2.得到變換矩陣的幾種方法,

(1)cv2.getrotationmatrix2d()得到旋轉矩陣或者放縮,

(2)通過點來表示;三個點的和四個點的,cv2.getaffinetransform和cv2.getperspectivetransform

這裡舉乙個三個點的例子;

3.變換函式來得到結果影象;

opencv 提供了兩個變換函式,cv2.warpaffine 和 cv2.warpperspective,使用這兩個函式你可以實現所有型別的變換。cv2.warpaffine 接收的引數是2 × 3 的變換矩陣,而 cv2.warpperspective 接收的引數是 3 × 3 的變換矩陣。

仿射變換一般通過函式cvwrapaffine(src,dst,mat)實現,其中mat是2x3的仿射矩陣,該矩陣可以利用函式cvgetaffinetransform(srctri,dsttri,mat)得到,其中mat是被該函式填充的仿射矩陣,srctri和dsttri分別是由三個頂點定義的平行四邊形

透視變換是將投影到乙個新的視平面,也稱作投影對映.它是二維(x,y)到三維(x,y,z),再到另乙個二維(x』,y』)空間的對映. 

相對於仿射變換,它提供了更大的靈活性,將乙個四邊形區域對映到另乙個四邊形區域

仿射變換是透視變換的一種特殊情況.它把二維轉到三維,變換後,再轉對映回之前的二維空間

1.簡單閾值,通過cv2.threshold來對影象的某些高於或低於乙個閾值的畫素點進行操作;

這個函式的第乙個引數就是原影象,原影象應該是灰度圖。第二個引數就是用來對畫素值進行分類的閾值。第三個引數就是當畫素值高於(有時是小於)閾值時應該被賦予的新的畫素值。opencv提供了多種不同的閾值方法,這是有第四個引數來決定的

2.自適應閾值,

cv2.adaptivethreshold

當同一幅影象上的不同部分的具有不同亮度時。這種情況下我們需要採用自適應閾值。此時的閾值是根據影象上的每乙個小區域計算與其對應的閾值

otsu

二值化

簡單來說就是對一副雙峰影象自動根據其直方圖計算出乙個閾值(對於非雙峰影象,這種方法得到的結果可能會不理想)

採用高斯核去噪之後,影象變為乙個雙峰影象,然後再採用otsu二值化處理之後的原雜訊影象變成了下面的樣子:第乙個為簡單閾值,第二個為0自適應閾值,第三個加了高斯去噪;

參考自:

資料基本處理

import 基本模組import numpy as np np.set printoptions suppress true import pandas as pd pd.set option display.max columns none pd.set option display.max r...

List集合基本處理

1.迴圈list中的所有元素然後刪除重複 for int i 0 i list.size 1 i 2.通過hashset踢除重複元素 hashset h new hashset list list.clear list.addall h 3.刪除arraylist中重複元素,保持順序 for ite...

JPivot的基本處理流程

一 介紹 jpivot 是乙個自定義的jsp的標籤庫,可以用來在jsp頁面中嵌入olap 和圖表。使用者可以執行典型的olap導航,如下鑽,切片和切塊。它使用mondrian 作為其olap伺服器。二 基本處理流程 等有時間了才能夠修正錯誤及細化,現在只能給出一些流程圖 示意,非規範 1.總體處理流...