模板匹配是一項在一幅影象中尋找與另一幅模板影象最匹配(相似)部分的技術.
實現:
定義:標準化是將不同變化範圍的值對映到相同的固定範圍中,常見的是 [0,1],此時亦稱歸一化,也可以是[-1,1]範圍。
形式:
min_max標準化:
也稱為離差標準化,是對原始資料的線性變換,使結果值對映到[0 - 1]之間。轉換函式如下:
2.z-score標準化方法
這種方法給予原始資料的均值(mean)和標準差(standard deviation)進行資料的標準化。經過處理的資料符合標準正態分佈,即均值為0,標準差為1,轉化函式為:
作用:
1.無量綱化
例如房子數量和收入,從業務層知道這兩者的重要性一樣,所以把它們全部歸一化,這是從業務層面上作的處理。
2.避免數值問題
不同的資料在不同列資料的數量級相差過大的話,計算起來大數的變化會掩蓋掉小數的變化。
3.一些模型求解的需要
例如梯度下降法,如果不歸一化,當學習率較大時,求解過程會呈之字形下降。學習率較小,則會產生直角形路線,不管怎麼樣,都不會是好路線。
4.時間序列
進行log分析時,會將原本絕對化的時間序列歸一化到某個基準時刻,形成相對時間序列,方便排查。
5.收斂速度
加快求解過程中引數的收斂速度。
例子:
假設有兩個變數,都是均勻分布,x1範圍是[10000,20000],x2範圍是[1,2]。有很多處於同一直線上的點,我們稱這條直線為l。如果現在我們要做乙個分類的話,x2幾乎可以被忽略,x2很無辜的被乾掉了,僅僅因為所謂量綱的問題。即便x2不被乾掉,現在繼續求解,來做梯度下降。 很顯然,如果某一步我們求得的下降方向不在直線l上,幾乎可以肯定肯定這步不會下降。這就會導致不收斂,或者收斂很慢。
#include#includeusing namespace std;
using namespace cv;
mat src1,src2, dst;
int value = 0;
int max_value = 5;
void demo(int, void*);
int main()
namedwindow("src",cv_window_autosize);
namedwindow("output",cv_window_autosize);
createtrackbar("trackbar","output",&value,max_value,demo);
demo(0, 0);
//imshow("output", dst);
waitkey(0);
return 0;
}void demo(int, void*)
else
rectangle(dst,rect(loc.x,loc.y,src2.cols,src2.rows),scalar(0,0,255),2,line_aa);
rectangle(src1,rect(loc.x, loc.y, src2.cols, src2.rows), scalar(255, 255, 255), 2, line_aa);
imshow("output",dst);
imshow("src", src1);
}
OpenCV模板匹配
include include opencv2 opencv.hpp using namespace std using namespace cv int main int argc,char argv load reference image img imread argv 1 always ch...
opencv模板匹配
模板匹配是一種用於在源影象s中尋找定位給定目標影象t 即模板影象 的技術。其原理很簡單,就是通過一些相似度準則來衡量兩個影象塊之間的相似度similarity s,t 2.用途 模板匹配方法常用於一些平面影象處理中,例如印刷中的數字 工業零器件等小尺寸目標影象識別分類。3.方法 模板匹配中,源影象和...
模板匹配opencv
模板匹配,就是在一幅影象中尋找另一幅模板影象最匹配 也就是最相似 的部分的技術。說的有點抽象,下面給個例子說明就很明白了。在上面這幅全明星照中,我們想找出姚明頭像的位置,並把它標記出來,可以做到嗎?可以,這就是模板匹配的要做的事情。其實模板匹配實現的思想也是很簡單很暴力的,就是拿著模板 姚明頭像 在...