视差图的颜色反转
Disparity map's color is reversed
我的视差图效果很好。据我所知,近的东西应该是亮的,远的东西是暗的。我的情况正好相反。
这是我的代码:
CvStereoBMState *BMState = cvCreateStereoBMState();
assert(BMState != 0);
BMState->preFilterSize=31/*41*/;
BMState->preFilterCap=41/*31*/;
BMState->SADWindowSize=31/*41*/;
BMState->minDisparity=-0/*-64*/;
BMState->numberOfDisparities=112/*128*/;
try
{
while(true)
{
if(true)
{
if( frameL && frameR )
{
CvMat part;
cvRemap( gFrameL, img1r, mx1, my1 );
cvRemap( gFrameR, img2r, mx2, my2 );
if( true/*!isVerticalStereo || useUncalibrated != 0 */)
{
cvFindStereoCorrespondenceBM( img1r, img2r, disp,BMState);
cvNormalize( disp, vdisp, 0, 256, CV_MINMAX );
cvNamedWindow( "disparity" );
cvShowImage( "disparity", vdisp );
}
}
}
frameL = cvQueryFrame(capLeft);
frameR= cvQueryFrame(capRight);
cvCvtColor(frameL,gFrameL,CV_BGR2GRAY);
cvCvtColor(frameR,gFrameR,CV_BGR2GRAY);
}
如何解决这个问题?
视差是一个立体图像中的点与另一个点之间的(水平)像素单位的偏移量,其中两个点是同一个3D世界点的图像。如果你的图像被切换,视差的方向也会被翻转。尝试切换输入图像。
如果你的左右图像被交换,那么视差可能是负的。
在cvNormalize()
之后,您将得到合适的正值,较小的值表示接近的对象。
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 如何在内核C++中使用1920x1080x16M图形或类似的16M颜色?(VGA)
- 如何在24位SDL_Surface上设置像素的颜色
- 如何从SDL_Surface获取特定像素的颜色
- 列表视图更改选择颜色
- GtkTreeView 交替行颜色
- dx11 渲染到纹理仅显示透明颜色
- 使用 OpenGL 4.5 更改所选顶点的颜色
- OpenCV - Python 断言错误:SAD 算法 - 立体相机视差图计算
- 为什么我的 LEGACY OPENGL 颜色反转了?
- 双击更改 mfc 中列表控件中的行的颜色
- 更改 QT 中按钮的颜色
- 当我使用CHAR_INFO结构时,控制台会无缘无故地改变颜色
- 列表视图项的替代颜色
- GLSL 将 uint 转换为浮点颜色
- std::带有颜色和标题的 clog 包装器无法正确打印整数
- Vec3b:r/g/b 颜色的最大值为 254,而不是 255
- 如何将矢量对象更改为不同的颜色?
- PPM 颜色显示错误
- 视差图的颜色反转