Я пытаюсь понять образец OpenCV stereo_match.py. Место, где вычисляются маски, out_points и out_colors, я не могу понять. Код относящийся к тому, что приведен ниже:Понимание кода OpenCV с кодом stereo_match.py
mask = disp > disp.min()
out_points = points[mask]
out_colors = colors[mask]
Вот, что я знаю, маска, очки и цвета Numpy массивы размером 555x641. Когда вышеуказанная операция завершена, out_points и out_colors становятся массивами 300000x3.
Какова логика этого и как вы достигаете этой функции в чистом питоне (это означает, что точки, цвета и маска являются нормальными массивами, и мне нужно выполнить описанную выше операцию с помощью numpy и вычислить out_points и out_colors)?
Спасибо
Да, я смог понять, что out_points и out_colors вычисляются таким образом, но теперь я пытаюсь выяснить, как массивы изменились с массивов 555x641 на 3000000x3. Если значения out_points и out_colors вычисляются, если значение маски было истинным, то оно должно быть массивами размером менее 555x641, правильно? Есть ли чистый код Python, который вы можете объяснить с помощью? Спасибо – dvenkatsagar
вы уверены, что это 3M, а не 300k? Если это 3М, то я согласен, что это странно. –
Да, 300K не 3M, извините. Я экспериментировал с numpy.ndarrays, и я попытался выполнить повторную операцию. Я понял, что если взять два массива одинаковых размеров и выполнить описанную выше операцию, то он создаст массив 1D. Но дело в том, что точки - это 3D-массив, а маска - 2D, а out put - это 2D-массив. Когда я пробовал то же самое в эксперименте, это дает мне ошибку «оси из связанной», что очень странно. – dvenkatsagar