我正在使用cv2库来检测2个立体图像的关键点,并将生成的dmatches对象转换为numpy数组:
kp_left, des_left = sift.detectAndCompute(im_left, mask_left)
matches = bf.match(des_left, des_right) # according to assignment pdf
np_matches = dmatch2np(matches)
然后我想过滤关键点,如果关键点在y方向后过滤,不应该大于3像素:
ind = np.where(np.abs(kp_left[np_matches[:, 0], 1] - kp_right[np_matches[:, 1], 1]) < 4)
并且那些关键点也应该没有小于&lt;的差异。 0.然后它意味着关键点在相机后面。
ind = np.where((kp_left[np_matches[ind[0], 0], 0] - kp_right[np_matches[ind[0], 1], 0]) >= 0)
如何结合这两个条件?
答案 0 :(得分:1)
一般形式如下:
condition1 = x < 4
condition2 = y >= 100
result = np.where(condition1 & condition2)
更一般的形式:
conditions = [...] # list of bool arrays
result = np.where(np.logical_and.reduce(conditions))