资源简介
基于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
- 立体匹配综合论文集
- 基于SIFT特征描述子的立体匹配算法
- 基于Kinect的三维重建
- 基于分割的立体匹配及算法-Segment_b
- 基于最小生成树的全局优化立体匹配
- effective large scale stereo matching
- 图像配准和三维重建应用程序
- Imaris三维重建软件手册
- 基于双目立体视觉的三维重建
- 基于视频的三维重建研究
- stereo matching using tree filtering
- 中科院自动化所三维重建PPT(完整版
- Hausdorff距离匹配代码
- KinectFusion 和 ElasticFusion 三维重建方法
- 双目立体匹配图片集,很多经典图片
- 基于双目视觉的图像三维重建
- 基于区域的立体匹配算法介绍
- 知名的斯坦福兔子的三维点云数据,
- stereoMatch
- 基于自适应窗口的立体匹配
- 斯坦福兔子 ply和pcd格式模型
- Marching cubes算法实现对切片集的三维重
- 2001年A题血管三维重建
- 简单的三维重建系统
- 立体匹配可用的图像对
- 基于点云数据的三维重建
- ELAS开源程序高效大规模立体匹配
- 相机标定完整工程
评论
共有 条评论