在针孔摄像机模型中,只有一个焦距位于主点和摄像机中心之间.
但是,在计算相机的内部参数后,矩阵包含
(fx, 0, offsetx, 0,
0, fy, offsety, 0,
0, 0, 1, 0)
Run Code Online (Sandbox Code Playgroud)
这是因为图像传感器的像素在x和y中不是正方形吗?
谢谢.
我正在尝试做一些简单的事情:
std::cout << e << std::endl;
Run Code Online (Sandbox Code Playgroud)
哪里e是类型Eigen::Affine3d。但是,我收到了无用的错误消息,例如:
cannot bind 'std::ostream {aka std::basic_ostream<char>}'
lvalue to 'std::basic_ostream<char>&&'
Run Code Online (Sandbox Code Playgroud)
对于这是有益解释原因在这里,但如果答案不适用。
该官方文档被生硬,这意味着只有Affine3d和Affine3f对象是矩阵。std::cout虽然可以毫无问题地打印特征矩阵和向量。那么问题是什么?
我试图在OpenCV中使用StereoBM从一对图像中提取视差图.忽略下面的视差图的质量差,您可以看到它左侧有许多黑色列,对应于参数ndisparities.我认为ndisparities只告诉StereoBM它可以"远"地搜索通信.什么可能导致这种行为?它似乎限制了生成的深度图的宽度,但我不明白为什么.

你可以在这里看到立体声对和我的代码.提前感谢任何指针!
Mat Limg = imread("left.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat Rimg = imread("right.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat disp(Limg.size(), CV_16SC1), disp8U;
int ndisparities = 512;
StereoBM SBM(StereoBM::BASIC_PRESET, ndisparities , 11);
SBM(Limg, Rimg, disp, CV_16S);
double minVal, maxVal;
minMaxLoc( disp, &minVal, &maxVal );
disp.convertTo( disp8U, CV_8UC1, 255/(maxVal - minVal));
imshow("disparity", disp8U)
Run Code Online (Sandbox Code Playgroud)