资源简介
基于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] < colorRefL[color]) ^ (colorRP[color] < colorRefR[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个文件信息
相关资源
- VisualSFM_CMVS-PMVS_MeshLab
- DICOM Viewer,三维重建后可导出DICOM格式
- 论文研究-基于视觉的三维重建技术综
- 视差图转换物方点云DSM
- SAD、BM、SGBM算法获得视差图
- 基于VS2017+opencv3.4.3的立体匹配SGBM与
- OpenCV实现SfM:双目三维重建
- 可用于基于VTK的Marching Cubes算法的DI
- 图像立体匹配和三维重建软件
- 立体匹配ADCensus
- 人脸三维重建完整代码
- A Non-Local Cost Aggregation Method for Stereo
- 设置cmvs/pmvs的visualSFM傻瓜式三维重建
- OpenCV实现多目三维重建
- marching cubes算法
- 很经典的几种立体匹配算法源代码,
- 双目立体匹配测试数据集Middlebury St
- 航与用于三维重建的航拍图
- 可直接进行多张照片三维重建,速度
- 并行立体匹配论文合集
- 申抒含-基于图像的大规模场景三维重
- pcd格式三维点云
- ELAS算法原文+库文件+VS2015x64实现
- kinectfusion程序
- 双目标定后的三维重建
- 空间点三位重建前方交会
- opencv立体匹配算法BM+SGBM+VAR运行官方立
- 基于特征点匹配的三维重建OpenCV+Ope
- 基于相移法的三维重建
- CMP-MVS开源代码
评论
共有 条评论