event_function(event, x, y, flags, param)
を定義しておいて、ここに各イベントに対する挙動をコーディング。

そして、この関数をOpenCVのWindowに登録する。
cv2.setMouseCallback(‘img’, event_function)

以下は、カメラ画像の表示windowがアクティブなときに、
右クリックまたは左クリックするとマウス位置をprint文で表示するプログラム。

import numpy as np
import cv2
 
def event_function(event, x, y, flags, param):
    """
    'EVENT_FLAG_ALTKEY', 'EVENT_FLAG_CTRLKEY', 'EVENT_FLAG_LBUTTON',
    'EVENT_FLAG_MBUTTON', 'EVENT_FLAG_RBUTTON', 'EVENT_FLAG_SHIFTKEY',
    'EVENT_LBUTTONDBLCLK', 'EVENT_LBUTTONDOWN', 'EVENT_LBUTTONUP',
    'EVENT_MBUTTONDBLCLK', 'EVENT_MBUTTONDOWN', 'EVENT_MBUTTONUP',
    'EVENT_MOUSEHWHEEL', 'EVENT_MOUSEMOVE', 'EVENT_MOUSEWHEEL',
    'EVENT_RBUTTONDBLCLK', 'EVENT_RBUTTONDOWN', 'EVENT_RBUTTONUP'
    """
    if event == cv2.EVENT_LBUTTONDOWN:
        print('left mouse button down at (%d, %d)' % (x, y))

    if event == cv2.EVENT_RBUTTONDOWN:
        print('left mouse button down at (%d, %d)' % (x, y))

# -- main --
cap = cv2.VideoCapture(0)
cv2.namedWindow('img')
cv2.setMouseCallback('img', event_function)
 
while True:
    ret, img = cap.read()
    cv2.imshow('img', img)
 
    INPUT = cv2.waitKey(10) & 0xFF
    if INPUT == ord('q'):
        cv2.destroyAllWindows()
        break