资源简介
采用多路动态规划算法实现的双目立体匹配,采用了8个方向,针对PC进行了优化,多线程实现,可以得到精确的视差图像
代码片段和文件信息
// Copyright ?Robert Spangenberg 2014.
// See license.txt for more details
#include “StereoCommon.h“
#include “FastFilters.h“
#include // intrinsics
#include
#include “string.h“ // memset
#include “assert.h“
inline uint8* getPixel8(uint8* base uint32 width int j int i)
{
return base+i*width+j;
}
inline uint16* getPixel16(uint16* base uint32 width int j int i)
{
return base+i*width+j;
}
inline uint32* getPixel32(uint32* base uint32 width int j int i)
{
return base+i*width+j;
}
inline uint64* getPixel64(uint64* base uint32 width int j int i)
{
return base+i*width+j;
}
FORCEINLINE void testpixel(uint8* source uint32 width sint32 i sint32 juint64& value sint32 x sint32 y)
{
if (*getPixel8(source widthj+xi+y) - *getPixel8(source widthj-xi-y)>0) {
value += 1;
}
}
FORCEINLINE void testpixel2(uint8* source uint32 width sint32 i sint32 juint64& value sint32 x sint32 y)
{
value *= 2;
uint8 result = *getPixel8(source widthj+xi+y) - *getPixel8(source widthj-xi-y)>0;
value += result;
}
void census9x7_mode8(uint8* source uint64* dest uint32 width uint32 height)
{
memset(dest 0 width*height*sizeof(uint64));
// HWCS central symmetric with 3 central rows
const int vert = 3;
const int hor = 4;
for (sint32 i=vert; i < (sint32)height-vert; i++) {
for (sint32 j=hor; j < (sint32)width-hor; j++) {
uint64 value = 0;
testpixel(source width ij value-4-3);
testpixel2(source width ij value-3-3);
testpixel2(source width ij value-2-3);
testpixel2(source width ij value-1-3);
testpixel2(source width ij value0-3 );
testpixel2(source width ij value-4-2);
testpixel2(source width ij value-3-2);
testpixel2(source width ij value-2-2);
testpixel2(source width ij value-1-2);
testpixel2(source width ij value0-2 );
testpixel2(source width ij value-4-1);
testpixel2(source width ij value-3-1);
testpixel2(source width ij value-2-1);
testpixel2(source width ij value-1-1);
testpixel2(source width ij value0-1 );
testpixel2(source width ij value-4 0);
testpixel2(source width ij value-3 0);
testpixel2(source width ij value-2 0);
testpixel2(source width ij value-1 0);
testpixel2(source width ij value1-3 );
testpixel2(source width ij value2-3 );
testpixel2(source width ij value3-3 );
testpixel2(source width ij value4-3 );
testpixel2(source width ij value1-2 );
testpixel2(source width ij value2-2 );
testpi
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-07-18 03:51 rSGM\
目录 0 2014-07-18 03:34 rSGM\bin\
目录 0 2014-07-18 03:50 rSGM\bin\Debug\
目录 0 2014-07-18 03:50 rSGM\bin\Release\
目录 0 2014-07-18 03:50 rSGM\build\
文件 1302 2014-07-13 18:33 rSGM\build\rSGM.sln
文件 10752 2014-07-18 03:50 rSGM\build\rSGM.v12.suo
文件 10154 2014-07-18 03:49 rSGM\build\rSGM.vcxproj
文件 2147 2014-07-13 21:10 rSGM\build\rSGM.vcxproj.filters
文件 1643 2014-07-18 03:45 rSGM\build\rSGM.vcxproj.user
目录 0 2014-07-18 03:34 rSGM\obj\
目录 0 2014-07-18 03:37 rSGM\src\
文件 36235 2014-07-13 19:49 rSGM\src\FastFilters.cpp
文件 629 2014-07-13 19:49 rSGM\src\FastFilters.h
文件 819 2014-07-13 19:39 rSGM\src\license.txt
文件 463 2014-07-13 20:55 rSGM\src\makefile
文件 1271 2014-07-13 19:49 rSGM\src\MyImage.h
文件 3255 2014-07-13 19:49 rSGM\src\MyImage.hpp
文件 2578 2014-07-18 03:39 rSGM\src\readme.txt
文件 14274 2014-07-13 19:49 rSGM\src\rSGMCmd.cpp
文件 47009 2014-07-13 21:09 rSGM\src\StereoBMHelper.cpp
文件 6813 2014-07-13 19:49 rSGM\src\StereoBMHelper.h
文件 2836 2014-07-13 21:24 rSGM\src\StereoCommon.h
文件 6248 2014-07-13 20:51 rSGM\src\StereoSGM.h
文件 7589 2014-07-13 19:49 rSGM\src\StereoSGM.hpp
文件 26942 2014-07-13 20:50 rSGM\src\StereoSGM_SSE.hpp
评论
共有 条评论