資源簡介
基于AD絕對差和Census變換的立體匹配算法代碼,需要的環境是:opencv3+pcl+boost+openmp

代碼片段和文件信息
#include?“adcensuscv.h“
ADCensusCV::ADCensusCV(const?cv::Mat?&leftImage?const?cv::Mat?&rightImage?cv::Size?censusWin?float?lambdaAD?float?lambdaCensus)
{
????this->leftImage?=?leftImage;
????this->rightImage?=?rightImage;
????this->censusWin?=?censusWin;
????this->lambdaAD?=?lambdaAD;
????this->lambdaCensus?=?lambdaCensus;
}
//?計算圖像的AD匹配代價計算
//?輸入:目標點在左右圖像中的搜索位置
//?輸出:目標點在左右圖像中的相似度,值越小相似度越高,作為匹配點的可能性就越高
float?ADCensusCV::ad(int?wL?int?hL?int?wR?int?hR)?const
{
????float?dist?=?0; //初始視差
????const?cv::Vec3b?&colorLP?=?leftImage.at(hL?wL);
????const?cv::Vec3b?&colorRP?=?rightImage.at(hR?wR);
????for(uchar?color?=?0;?color?3;?++color)
????{
????????dist?+=?std::abs(colorLP[color]?-?colorRP[color]);
????}
????return?(dist?/?3);?//rgb三個分量視差的平均值
}
//?計算圖像的census匹配代價計算
//?輸入:目標點在左右圖像中的搜索位置
//?輸出:目標點在左右圖像中的相似度,值越小相似度越高,作為匹配點的可能性就越高
float?ADCensusCV::census(int?wL?int?hL?int?wR?int?hR)?const
{
????float?dist?=?0;
????const?cv::Vec3b?&colorRefL?=?leftImage.at(hL?wL);?//左圖目標點p
????const?cv::Vec3b?&colorRefR?=?rightImage.at(hR?wR);?//右圖目標點p
//遍歷census窗口像素,估算窗口內各個位置像素相似度,相加作為目標點的相似度
????for(int?h?=?-censusWin.height?/?2;?h?<=?censusWin.height?/?2;?++h)
????{
????????for(int?w?=?-censusWin.width?/?2;?w?<=?censusWin.width?/?2;?++w)
????????{
????????????const?cv::Vec3b?&colorLP?=?leftImage.at(hL?+?h?wL?+?w);
????????????const?cv::Vec3b?&colorRP?=?rightImage.at(hR?+?h?wR?+?w);
????????????for(uchar?color?=?0;?color?3;?++color)
????????????{
????????????????//?bool?diff?=?(colorLP[color]?????????????????bool?diff?=?(colorLP[color]?-?colorRefL[color])?*?(colorRP[color]?-?colorRefR[color])?0;
????????????????dist?+=?(diff)??1:?0;
????????????}
????????}
????}
????return?dist;
}
//?AD和Census匹配代價結合
//?輸入:目標點在左右圖像中的搜索位置
//?輸出:目標點在左右圖像中的相似度,值越小相似度越高,作為匹配點的可能性就越高
float?ADCensusCV::adCensus(int?wL?int?hL?int?wR?int?hR)?const
{
????float?dist;
????//?compute?Absolute?Difference?cost
????float?cAD?=?ad(wL?hL?wR?hR);
????//?compute?Census?cost
????float?cCensus?=?census(wL?hL?wR?hR);
????//?combine?the?two?costs
//?將兩種匹配代價進行歸一化,并相加
????dist?=?1?-?exp(-cAD?/?lambdaAD);?
????dist?+=?1?-?exp(-cCensus?/?lambdaCensus);
????return?dist;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-11-24?17:07??ADCensus\
?????目錄???????????0??2019-11-24?17:06??ADCensus\.vs\
?????目錄???????????0??2019-11-24?17:06??ADCensus\.vs\ADCensus\
?????目錄???????????0??2019-11-24?17:06??ADCensus\.vs\ADCensus\v15\
?????文件??????253952??2019-11-24?10:00??ADCensus\.vs\ADCensus\v15\Browse.VC.db
?????目錄???????????0??2019-11-24?17:06??ADCensus\.vs\ADCensus\v16\
?????文件????????5632??2019-11-24?09:55??ADCensus\.vs\ADCensus\v16\.suo
?????文件??????253952??2019-11-24?09:55??ADCensus\.vs\ADCensus\v16\Browse.VC.db
?????文件????????2579??2019-11-24?14:54??ADCensus\adcensuscv.cpp
?????文件?????????644??2019-11-24?14:53??ADCensus\adcensuscv.h
?????文件????????5441??2019-11-24?14:50??ADCensus\aggregation.cpp
?????文件????????1213??2019-11-24?14:53??ADCensus\aggregation.h
?????文件????????1546??2019-11-24?14:27??ADCensus\CMakeLists.txt
?????文件?????????435??2019-11-24?14:15??ADCensus\common.h
?????文件???????16049??2019-11-24?14:53??ADCensus\disparityrefinement.cpp
?????文件????????1600??2019-11-24?14:50??ADCensus\disparityrefinement.h
?????文件????????3553??2019-11-24?14:56??ADCensus\imageprocessor.cpp
?????文件?????????534??2019-11-24?14:50??ADCensus\imageprocessor.h
?????文件?????????415??2016-08-27?19:53??ADCensus\images.xm
?????文件???????12937??2016-01-01?04:46??ADCensus\libconfig.h
?????文件???????14065??2019-11-24?14:22??ADCensus\libconfig.h++
?????文件???????11891??2019-11-24?14:59??ADCensus\main.cpp
?????文件????????9791??2019-11-24?15:00??ADCensus\myTest.cpp
?????目錄???????????0??2019-11-24?17:06??ADCensus\sample\
?????文件????????1535??2016-08-27?19:53??ADCensus\sample\config.cfg
?????文件???????????0??2016-08-27?19:53??ADCensus\sample\extrinsics.yml
?????文件?????????415??2016-08-27?19:53??ADCensus\sample\images.xm
?????目錄???????????0??2019-11-24?17:06??ADCensus\sample\test_images\
?????文件??????362946??2016-08-27?19:53??ADCensus\sample\test_images\01left_picture.png
?????文件??????364420??2016-08-27?19:53??ADCensus\sample\test_images\01right_picture.png
?????文件??????342036??2016-08-27?19:53??ADCensus\sample\test_images\02left_picture.png
............此處省略9個文件信息
評論
共有 條評論