歸一化就是要把需要處理的資料經過處理後(通過某種演算法)限制在你需要的一定範圍內。首先歸一化是為了後面資料處理的方便,其次是保證程式執行時收斂加快。歸一化的具體作用是歸納統一樣本的統計分布性。歸一化在0-1之間是統計的概率分布,歸一化在某個區間上是統計的座標分布。歸一化有同
一、統一和合一的意思。
歸一化的目的簡而言之,是使得沒有可比性的資料變得具有可比性,同時又保持相比較的兩個資料之間的相對關係,如大小關係;或是為了作圖,原來很難在一張圖上作出來,歸一化後就可以很方便的給出圖上的相對位置等。
函式原型:
void normalize(const inputarray src, outputarray dst, double alpha=1, double beta=0,
int normtype=norm_l2, int rtype=-1, inputarray mask=noarray())
該函式歸一化輸入陣列使它的範數或者數值範圍在一定的範圍內。
當用於歸一化時,normtype應該為cv::norm_minmax,alpha為歸一化後的最大值,beta為歸一化後的最小值。
normalize的原矩陣必須是單通道(src.channel==1),函式執行完,結果矩陣的大小和型別與原矩陣相同。無論之前是否初始化結果矩陣,最後的結果都與原矩陣型別相同。
parameters:
src輸入陣列
dst輸出陣列,支援原地運算
alpha
range normalization模式的最d值
beta
range normalization模式的最大值,不用於norm normalization(範數歸一化)模式。
normtype
歸一化的型別,可以有以下的取值:
norm_minmax:陣列的數值被平移或縮放到乙個指定的範圍,線性歸一化,一般較常用。
norm_inf: 此型別的定義沒有查到,根據opencv 1的對應項,可能是歸一化陣列的c-範數(絕對值的最大值)
norm_l1 :
歸一化陣列的l1-範數(絕對值的和)
norm_l2:
歸一化陣列的(歐幾里德)l2-範數
dtype
dtype為負數時,輸出陣列的type與輸入陣列的type相同;
否則,輸出陣列與輸入陣列只是通道數相同,而tpye=cv_mat_depth(dtype).
mask
操作掩膜,用於指示函式是否僅僅對指定的元素進行操作。
1、線性函式轉換,表示式如下:(對應norm_minmax)
ifmask(i,j)!=0
dst(i,j)=(src(i,j)-min(src))*(b『-a『)/(max(src)-min(src))+ a『
else
dst(i,j)=src(i,j)
其中b『=max(a,b), a『=min(a,b);
2. 當norm_type!=cv_minmax:
ifmask(i,j)!=0
dst(i,j)=src(i,j)*a/norm (src,norm_type,mask)
else
dst(i,j)=src(i,j)
其中,函式norm的功能是計算norm(範數)的絕對值
thefunctions norm calculate an absolute norm of src1 (when there is no src2 ):
技術分享
// 對於這種小矩陣,還有更簡單的賦值方式,找時間再改
cout歸一化函式normalize詳解
matlab歸一化函式,以及還原歸一化
2 只按行歸一化,如果是矩陣,則每行各自歸一化,如果需要對整個矩陣歸一化,用如下方法 flatteneddata originaldata 展開矩陣為一列,然後轉置為一行。mapminmax flatteneddata,0,1 歸一化。reshape size originaldata 還原為原始矩...
歸一化函式normalize詳解
歸一化就是要把需要處理的資料經過處理後 通過某種演算法 限制在你需要的一定範圍內。首先歸一化是為了後面資料處理的方便,其次是保證程式執行時收斂加快。歸一化的具體作用是歸納統一樣本的統計分布性。歸一化在0 1之間是統計的概率分布,歸一化在某個區間上是統計的座標分布。歸一化有同 一 統一和合一的意思。歸...
特徵歸一化的方法 線性歸一化 零均值歸一化
常用歸一化方法 1 線性歸一化,線性歸一化會把輸入資料都轉換到 0 1 的範圍,公式如下 該方法實現對原始資料的等比例縮放,其中xnorm為歸一化後的資料,x為原始資料,xmax xmin分別為原始資料集的最大值和最小值。優點 通過利用變數取值的最大值和最小值將原始資料轉換為界於某一特定範圍的資料,...