normalize
根據某種範數或者數值範圍歸一化陣列.
void cvnormalize( const cvarr* src, cvarr* dst,
double a=1, double b=0, int norm_type=cv_l2,
const cvarr* mask=null );
src輸入陣列
dst輸出陣列,支援原地運算
a輸出陣列的最小/最大值或者輸出陣列的範數
b輸出陣列的最大/最小值
norm_type
歸一化的型別,可以有以下的取值:
cv_c - 歸一化陣列的c-範數(絕對值的最大值)
cv_l1 - 歸一化陣列的l1-範數(絕對值的和)
cv_l2 - 歸一化陣列的(歐幾里德)l2-範數
cv_minmax - 陣列的數值被平移或縮放到乙個指定的範圍
mask
操作掩膜,用於指示函式是否僅僅對指定的元素進行操作
該函式歸一化輸入陣列使它的範數或者數值範圍在一定的範圍內
對於不同的norm_type, 根據我的試驗(mask=null)的時候, a,b(a>b)起的作用結果如下:
norm_type=cv_c時, src 被重新"縮放"(rescale)到dst, 使得dst的值是
線性對映
到[0,1]區間.(a,b其實無作用)
norm_type=cv_l1,或者 cv_l2時, 得到l1,l2規範化的dst.(a,b其實無作用)
norm_type=cv_minmax時, src會被縮放(rescale)和移動(translation)到dst,使得dst的值是
線性對映
到[b,a]區間.
**:#include
#include
#include
#include
#include
#include
void displaymat(const cvmat* mat)
}std::cout<
}int main (int argc, char * const argv) ;
cvmat src=cvmat(6,1,cv_64fc1,data);
cvmat dst=cvmat(6,1,cv_64fc1,data);
std::cout<<"a=5,b=0: ";cvnormalize(&src,&dst,5,0,cv_c,null);
displaymat(&dst);std::cout<<"---------"<
std::cout<<"a=5,b=0: ";cvnormalize(&src,&dst,5,0,cv_l1,null);
displaymat(&dst);std::cout<<"---------"<
std::cout<<"a=5,b=0: ";cvnormalize(&src,&dst,5,0,cv_l2,null);
displaymat(&dst);std::cout<<"---------"<
std::cout<<"a=5,b=0: ";cvnormalize(&src,&dst,5,0,cv_minmax,null);
displaymat(&dst);std::cout<<"---------"<
return 0;
}當cvmat=, a=5,b=0的時候,輸出結果如下:
a=5,b=0: cv_c: 0.1, 0.4, 0.5, 0.6, 0.7, 1,
---------
a=5,b=0: cv_l1: 0.030303, 0.121212, 0.151515, 0.181818, 0.212121, 0.30303,
---------
a=5,b=0: cv_l2: 0.0663723, 0.265489, 0.331862, 0.398234, 0.464606, 0.663723,
---------
a=5,b=0: cv_minmax: 0, 1.66667, 2.22222, 2.77778, 3.33333, 5,
---------
l1_norm: 每個元素乘上1/sqrt(1+4+5+6+7+10)
l2_norm: 每個元素乘上1/sqrt(1+16+25+36+49+100)
cv_minmax:使每個元素限制在[a=5,b=0]之間演算法如下:dst(i)=(src(i)-min(src))*(5-0)/(max(src)-min(src))
1-->0
4-->3*5/9=1.6666
5-->4*5/9=2.2222
python中關於Opencv中關於矩形的函式總結
最近處理影象,以前用的都是matlab,現在入手python比較慢,這幾天看到了很多命名和功能相似的函式,作個記錄總結一下 只是為了能夠看下函式知道它是做什麼的,因此不會對其用法說得面面俱到。看到乙個文章講得清晰詳實,分享一下 功能 計算輪廓內的面積 示例 輸入為乙個點集 contours 0 為前...
關於OpenCV中IplImage的位元組對齊問題
最近利用做專案,遇到了乙個問題 我是用opencv讀的影象,然後自己新開闢了乙個空間,以下是 byte inputimage null iplimage image get null image get cvloadimage imagename,0 imagewidth image get wid...
關於OPENCV中IplImage所儲存
關於opencv中iplimage所儲存資料的討論 shelliar opencv一書中,對iplimage和cvmat的講述不夠詳細,很多時候當我們處理影象的時候,我們會避免用cvmat而是直接用iplimage的方法。iplimage這個結構體中儲存影象資料的部分是char imagedata,...