小编Dan*_*Lee的帖子

OpenCV中的reprojectImageTo3D()

我一直在尝试使用OpenCV提供的reprojectImageTo3D()函数从视差图计算点的真实世界坐标,但输出似乎不正确.

我有校准参数,并使用计算Q矩阵

stereoRectify(left_cam_matrix, left_dist_coeffs, right_cam_matrix, right_dist_coeffs, frame_size, stereo_params.R, stereo_params.T, R1, R2, P1, P2, Q, CALIB_ZERO_DISPARITY, 0, frame_size, 0, 0);

我相信这第一步是正确的,因为立体声帧正在被正确纠正,我正在执行的失真消除也似乎没问题.使用OpenCV的块匹配算法计​​算视差图,它看起来也很好.

3D点的计算方法如下:

cv::Mat XYZ(disparity8U.size(),CV_32FC3); reprojectImageTo3D(disparity8U, XYZ, Q, false, CV_32F);

但出于某种原因,考虑到视差图,它们会形成某种锥形,甚至不能达到我的预期.我发现其他人对此功能有类似的问题,我想知道是否有人有解决方案.

提前致谢!

[编辑]

stereoRectify(left_cam_matrix, left_dist_coeffs, right_cam_matrix, right_dist_coeffs,frame_size, stereo_params.R, stereo_params.T, R1, R2, P1, P2, Q, CALIB_ZERO_DISPARITY, 0, frame_size, 0, 0);

initUndistortRectifyMap(left_cam_matrix, left_dist_coeffs, R1, P1, frame_size,CV_32FC1, left_undist_rect_map_x, left_undist_rect_map_y);
initUndistortRectifyMap(right_cam_matrix, right_dist_coeffs, R2, P2, frame_size, CV_32FC1, right_undist_rect_map_x, right_undist_rect_map_y);
cv::remap(left_frame, left_undist_rect, left_undist_rect_map_x, left_undist_rect_map_y, CV_INTER_CUBIC, BORDER_CONSTANT, 0);
cv::remap(right_frame, right_undist_rect, right_undist_rect_map_x, right_undist_rect_map_y, CV_INTER_CUBIC, BORDER_CONSTANT, 0);

cv::Mat imgDisparity32F = Mat( …
Run Code Online (Sandbox Code Playgroud)

c++ opencv

19
推荐指数
1
解决办法
2万
查看次数

在OpenCV中使用StereoBM的差异视差图

我已经把一个立体声凸轮装置放在一起,我很难用它来制作一个好的视差图.这是一个两个校正图像和我用它们产生的视差图的例子:

使用视差图整理图像

如你所见,结果非常糟糕.更改StereoBM的设置并没有太大变化.

设置

  • 两个相机都是相同的型号,并通过USB连接到我的电脑.
  • 它们被固定在刚性木板上,因此它们不会移动.我尽可能地将它们对齐,但当然它并不完美.它们无法移动,因此它们在校准期间和之后的位置是相同的.
  • 我使用OpenCV校准了立体声对,并使用OpenCV的StereoBM类来产生视差图.
  • 它可能不那么相关,但我用Python编码.

我能想象的问题

我是第一次这样做,所以我远不是专家,但我猜测问题出在校准或立体声校正中,而不是视差图的计算.我已经尝试了所有设置的排列StereoBM,虽然我得到了不同的结果,但它们都像上面显示的视差图:黑色和白色的补丁.

正如我所理解的那样,立体校正应该对齐每个图像上的所有点,以便它们通过直线(在我的情况下是水平线)连接,这一事实进一步支持了这一想法.如果我检查彼此相邻的两个经过校正的图片,那么事实并非如此,事实并非如此.右侧图片上的对应点比左侧高得多.不过,我不确定校准或整流是否是问题.

代码

实际代码包含在对象中 - 如果您有兴趣全部查看它,它可以在GitHub上获得.这是一个实际运行的简化示例(当然在我使用超过2张图片校准的实际代码中):

import cv2
import numpy as np

## Load test images
# TEST_IMAGES is a list of paths to test images
input_l, input_r = [cv2.imread(image, cv2.CV_LOAD_IMAGE_GRAYSCALE)
                    for image in TEST_IMAGES]
image_size = input_l.shape[:2]

## Retrieve chessboard corners
# CHESSBOARD_ROWS and CHESSBOARD_COLUMNS are the number of inside rows and
# columns in the chessboard used for calibration
pattern_size = CHESSBOARD_ROWS, CHESSBOARD_COLUMNS
object_points …
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision stereo-3d

14
推荐指数
1
解决办法
1万
查看次数

Sphinx 使用旧的模块代码

我使用 Sphinx 来记录我的代码,它是 Python 模块的集合。通过清理源代码生成的自动生成的文档很好,但是当我单击直接链接到包含 Sphinx 生成的包源的 HTML 页面的“代码”链接时,会显示旧版本的代码。

我尝试删除 Sphinx 生成的文档,从我自己的site-packages文件夹中卸载该包,并删除我的build文件夹中的所有内容。我绝对找不到与 Sphinx 输出相匹配的文件 - 它很旧,而且我不确定它来自哪里。有谁知道如何让 Sphinx 将我的新代码放入文档中?

正如我所说,自动文档工作正常,因此它显然在某种程度上解析了我的代码。那么为什么纯文本与自动文档不同呢?

python documentation python-sphinx

11
推荐指数
1
解决办法
2999
查看次数

使用EGit克隆存储库导入但不允许我导入项目

我刚刚在Github上开始了我的第三个存储库.我使用README文件在网站上初始化了存储库,并尝试使用Egit将其导入Eclipse.就像我从Github的其他项目一样,导入对话框工作正常,并且克隆了存储库.在我的文件浏览器中,我可以看到Egit创建的文件夹,以及存储库中的.git文件夹和README.

但是,当我到达Eclipse希望我为项目导入选择向导时,一切都停止了.我无法导入现有项目,因为还没有.如果我尝试将其作为一般项目导入,它不会让我更进一步,因为它声称:

/ path/to/my/folder重叠另一个项目的位置:'gnu_magic'

这确实是我试图导入的项目的名称,但是我刚刚第一次导入它应该不是问题.

如果我使用新的项目向导,它不允许我使用与项目相同的文件夹名称,声称该文件夹不为空(这是真的,但当我使用向导创建一个全新的项目时很奇怪).如果我给文件夹另一个名称,它会创建一个项目,但项目没有连接到存储库 - 我无法将我的更改提交回Github.

删除gnu_magic文件夹并重新开始会带来相同的结果.

有没有办法从Eclipse的配置中删除该特定项目的元数据?我不想失去我的其他项目,但我想在项目上与Egit合作.

另一个有趣的事实:如果我手动克隆存储库然后尝试将其导入Eclipse,作为我文件系统中的项目,它不会让我因为源是在目的地的层次结构中.

或者我完全忽略了这一点?我很惊讶我能够毫无问题地克隆其他存储库.过去几天与他们合作非常容易.

eclipse git clone github egit

8
推荐指数
2
解决办法
7967
查看次数

PyDev不执行将当前行发送到控制台的快捷方式

根据这个问题交互式控制台上PyDev文档,按下F2应该将当前行从PyDev编辑器发送到Python控制台.

我在Python编辑器中打开了一个Python文件(通过打开它"打开方式" - >"Python编辑器"确认了这一点)并按下Ctrl+ 启动了控制台会话Enter.尽管如此,当我按下时F2,没有任何反应.我必须选择我感兴趣的行并用Ctrl+ 发送到控制台Enter.

我已经在"窗口" - >"首选项" - >"常规" - >"键"下检查了我的键绑定选项,并且无法看到命令"在控制台中执行行"的设置之间的任何差异,映射到F2,和"交互式控制台",映射到Ctrl+ Alt+ Enter.但是,第二个命令有效,而第一个命令不起作用.我也尝试将命令映射到其他键,但这根本没有改变结果.有关如何使用此命令的任何提示?

python eclipse keyboard-shortcuts pydev

5
推荐指数
1
解决办法
1162
查看次数

使用 PyDev 在 Eclipse 中找不到 TODO 标签

我在 OpenSUSE 12.1 上使用 Eclipse 和 PyDev。我有 Javascript 和 Python 项目。通过右键单击,我可以添加 TODO,但由于我正在与其他开发人员合作,我希望将它们作为代码注释,以便它们通过 SVN 与其余代码同步。

我查看了这个线程:todo Tags not working on eclipse and pydev,但遗憾的是它没有帮助。这是我的设置的简短摘要:

  • 我正在运行 Eclipse 64 位,但这应该不是问题
  • PyDev --> 任务标签下的首选项已正确配置,它们设置为查找“TODO:”
  • 在首选项 --> 常规 --> 编辑器 --> 结构化文本编辑器 --> 任务标签中,启用搜索任务标签并将其设置为搜索 TODO
  • 在项目 --> 属性 --> PyDev - PYTHONPATH 中,我的源文件夹列在源文件夹下。

我认为可能导致这种情况的一件事是,在首选项 --> 常规 --> 编辑器 --> 结构化文本编辑器 --> 任务标签中,过滤器设置为仅搜索 CSS、DTD、HTML、JSP和XML。但没有办法让 Eclipse 也搜索 PY。这会导致问题吗?谢谢!

python eclipse svn tags todo

4
推荐指数
1
解决办法
4455
查看次数

在Python中使用OpenCV进行无失真点时的结果不佳

我在使用用于OpenCV的Python绑定的校准相机拍摄的图像上没有失真点.未失真的点具有与图像中检测到的原始点完全不同的坐标.

这是违规的电话:

undistorted = cv2.undistortPoints(image_points,
                                  camera_matrix,
                                  distortion_coefficients)
Run Code Online (Sandbox Code Playgroud)

哪里image_points是一个由检测到的棋盘角落的numpy数组返回cv2.findChessboardCorners并重新整形以匹配尺寸要求cv2.undistortPoints,camera_matrix并且distortion_coefficients被返回cv2.calibrateCamera.

camera_matrixdistortion_coefficients在我看来,会好起来的,等做image_points.然而,distorted似乎没有任何关系image_points.以下是值的摘要:

>>> image_points
array([[[ 186.95303345,  163.25502014]],

       [[ 209.54478455,  164.62690735]],

       [[ 232.26443481,  166.10734558]],

       ..., 

       [[ 339.03695679,  385.97784424]],

       [[ 339.20108032,  400.38635254]],

       [[ 339.13067627,  415.30780029]]], dtype=float32)
>>> undistorted
array([[[-0.19536583, -0.07900728]],

       [[-0.16608481, -0.0772614 ]],

       [[-0.13660771, -0.07537176]],

       ..., 

       [[ 0.00228534,  0.21044853]],

       [[ 0.00249786,  0.22910291]],

       [[ 0.00240568,  0.24841554]]], dtype=float32)
>>> camera_matrix
array([[ 767.56947802,    0.        ,  337.27849576],
   [ …
Run Code Online (Sandbox Code Playgroud)

python opencv camera-calibration

4
推荐指数
1
解决办法
2583
查看次数