我们获取视差图的时候,往往需要查看一些保存图像格式的视差图中对应点的视差,所以编写了一个小程序,可以实时的显示对应点的坐标和视差。
注:这里的视差是归一化之后的,因为png只能保存0-255的数值,根据你归一化的函数,再返归一化即可得到真实的视差。
import cv2
def get_disparity(event, x, y, flags, param):
if event == cv2.EVENT_MOUSEMOVE:
# 获取点击位置的视差信息
disparity = img[y][x]
# 在图像中实时显示出来
img_copy = img.copy()
cv2.circle(img_copy, (x, y), 5, (0, 0, 255), -1)
cv2.putText(img_copy, 'x: ' + str(x) + ' y: ' + str(y), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
cv2.putText(img_copy, 'disparity: ' + str(disparity), (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
cv2.imshow("Disparity", img_copy)
img = cv2.imread("1.png")
cv2.namedWindow("Disparity")
cv2.setMouseCallback("Disparity", get_disparity)
cv2.imshow("Disparity", img)
cv2.waitKey()
cv2.destroyAllWindows()