立體匹配中的NCC,SAD,SSD算法
来源:互联网 发布:华裔 不是中国人 知乎 编辑:程序博客网 时间:2024/06/05 20:15
http://www.cnblogs.com/cvlabs/archive/2010/01/13/1646902.html
Normalized Cross correlation (NCC)
NCC(u,v) = [(wl - w)/(|wl - w|)]*[(wr - w)/(|wr - w|)] 選擇最大值
Sum of Squared Defferences (SSD)
SSD(u,v) = Sum{[Left(u,v) - Right(u,v)] * [Left(u,v) - Right(u,v)]} 選擇最大值
Sum of Absolute Defferences (SAD)
SAD(u,v) = Sum{|Left(u,v) - Right(u,v)|} 選擇最小值
先說說SAD算法的基本流程:
1.構造一個小窗口,類似與卷積核。
2.用窗口覆蓋左邊的圖像,選擇出窗口覆蓋區域內的所有像素點。
3.同樣用窗口覆蓋右邊的圖像並選擇出覆蓋區域的像素點。
4.左邊覆蓋區域減去右邊覆蓋區域,並求出所有像素點差的絕對值的和。
5.移動右邊圖像的窗口,重復3,4的動作。(這裡有個搜索范圍,超過這個范圍跳出)
6.找到這個范圍內SAD值最小的窗口,即找到了左邊圖像的最佳匹配的像素塊。
OpenCV代碼示范SAD:
代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 IplImage* generateDisparityImage(IplImage* greyLeftImg32, IplImage* greyRightImg32, int windowSize,int DSR){ int offset=floor((double)windowSize/2); int height=greyLeftImg32->height; int width=greyLeftImg32->width; double* localSAD=new double[DSR];//DSR即搜索范圍 int x=0, y=0,d=0,m=0; int N=windowSize; IplImage* winImg=cvCreateImage(cvSize(N,N),32,1);//mySubImage(greyLeftImg32,cvRect(0,0,N,N)); IplImage* disparity=cvCreateImage(cvSize(width,height),8,1);//or IPL_DEPTH_8U BwImage imgA(disparity); for (y=0;y<height;y++){ for (x=0;x<width;x++){ imgA[y][x]=0; } } CvScalar sum; //CvScalar s2; for (y=0;y<height-N;y++){ //height-N for (x=0;x<width-N;x++){//width-N cvSetImageROI(greyLeftImg32, cvRect(x,y,N,N)); d=0; //initialise localSAD for (m=0;m<DSR;m++){localSAD[m]=0;} //start matching do{ if (x-d>=0){ cvSetImageROI(greyRightImg32, cvRect(x-d,y,N,N)); }else{ break; } cvAbsDiff(greyLeftImg32,greyRightImg32,winImg);//absolute difference sum=cvSum(winImg);//sum localSAD[d]=sum.val[0];//0 means single channel cvResetImageROI(greyRightImg32); d++; }while(d<=DSR); //to find the best d and store imgA[y+offset][x+offset]=getMaxMin(localSAD,DSR,0)*16; //0 means return minimum index cvResetImageROI(greyLeftImg32); }//x if (y%10==0)cout<<"row="<<y<<" of "<<height<<endl; }//y cvReleaseImage(&winImg); //cvReleaseImage(&rightWinImg); return disparity; }
- 立體匹配中的NCC,SAD,SSD算法
- 立体匹配中的NCC,SAD,SSD算法
- 立体匹配中的NCC,SAD,SSD算法
- 立体匹配中的NCC,SAD,SSD算法
- 立体匹配中的NCC,SAD,SSD算法
- 基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA算法
- 基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA算法
- 基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA算法
- 基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA算法
- 基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA算法
- 基于灰度的模板匹配算法:MAD、SAD、SSD、MSD、NCC、SSDA算法
- 【图像配准】基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法
- 图像配准】基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法
- 【图像配准】基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法
- 常用的基于区域的局部匹配准则 SAD、SSD、NCC
- 立体匹配之NCC算法
- 立体匹配之NCC算法
- NCC模板匹配识别算法
- 微软的Silverlight技术前景如何,会被淘汰吗?
- 在微软Windows 8平台上开发应用程序有什么特点?
- 铁道内部人士称12306购票网站崩溃因运力不足
- 二叉树的非递归遍历 C语言版
- 编写出更优秀软件的 10 条建议
- 立體匹配中的NCC,SAD,SSD算法
- hdu_1421
- 一家无名公司几乎把整个互联网都告上了法庭
- 互联网手机被指难接“地气”:过份依靠电商
- 这四类人老板会主动加工资
- 一学校出150名在校“老板”
- 33名开发人员炒了Oracle老板鱿鱼
- msp430 与c51 的区别
- 南开33名博士被学校“淘汰”引发争议