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.總體處理流...