python - 了解 OpenCV 示例 stereo_match.py​​ 代码

标签 python opencv numpy

我正在尝试理解 OpenCV 示例 stereo_match.py . mask、out_points、out_colors 计算的地方是我无法理解的。与此相关的代码如下:

mask = disp > disp.min()
out_points = points[mask]
out_colors = colors[mask]

在这里,我所知道的是,掩码、点和颜色是大小为 555x641 的 numpy 数组。完成上述操作后,out_points 和 out_colors 就变成了 300000x3 的数组。

这背后的逻辑是什么以及如何在纯 python 中实现此功能(也就是说,点、颜色和掩码是普通数组,我需要在不使用 numpy 的情况下执行上述操作并计算 out_points 和 out_colors)?

谢谢

最佳答案

我将解释代码:

mask = disp > disp.min()

这里的 mask 是一个与 disp 具有相同高度和宽度的二维数组,但所有值都存储为 bool 值。 disp 中的每个值都是根据逻辑语句计算得出的:x > disp.min()
out_points = points[mask]
out_colors = colors[mask]

这些数组是所有点和颜色的值,它们在掩码数组中存储为 True。由于您的图像是 555x641 = 350k 像素,因此 300k 数组在大小范围内。由于彩色图像具有三层,因此 300k x 3 是有意义的。

您可以在没有 numpy 的情况下执行这些操作,但我想它会减慢您的代码速度。如有其他问题,请追问!

关于python - 了解 OpenCV 示例 stereo_match.py​​ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34983296/

相关文章:

python - 无法在单元测试中授权

python - 基于另一个相同形状的 2D 数组对 2D numpy 数组(按行)进行排序

python - cx_Oracle 中的用户输入变量?

python - 将帧合并为一个视频时如何避免系统死机

python - 类型错误 : Cannot index by location index with a non-integer key

python - 如何使用 Scikit-cuda FFT 安排多个 1d FFT?

python - 如何在python中打印类的属性(即列表)

c++ - opencv2 可以使用 cmake 构建但不能在 CLion "build"功能中构建?

python cv2数组到numpy

opencv - 错误 LNK2019 : unsolvable external symbol (OpenCV + VS2012)