假设你已经定义了一个矩阵 'matrix',并且已经定义了一个 'mouse_callback' 函数来获取鼠标点击的坐标。

在 'mouse_callback' 函数中,你可以使用 'cv2.setMouseCallback' 来注册回调函数,并在回调函数中获取鼠标点击的坐标。然后,你可以将获取到的坐标写入矩阵中,但要确保坐标不超过矩阵的索引范围。

以下是一个示例代码:

import numpy as np
import cv2

# 定义矩阵
matrix = np.zeros((10, 10), dtype=np.uint8)

# 定义鼠标回调函数
def mouse_callback(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDOWN:
        # 确保坐标不超过索引范围
        if x < matrix.shape[1] and y < matrix.shape[0]:
            # 将坐标写入矩阵
            matrix[y, x] = 255
            print('Clicked at ({}, {})'.format(x, y))

# 创建一个窗口,并注册鼠标回调函数
cv2.namedWindow('Image')
cv2.setMouseCallback('Image', mouse_callback)

while True:
    # 显示矩阵
    cv2.imshow('Image', matrix)

    # 等待按下 'q' 键退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 关闭窗口
cv2.destroyAllWindows()

在这个示例代码中,我们首先创建了一个 10x10 的全零矩阵 'matrix'。然后我们定义了一个鼠标回调函数 'mouse_callback',该函数在鼠标点击事件发生时被调用。在回调函数中,我们首先检查鼠标点击的坐标是否超过了矩阵的索引范围,如果没有超过,则将坐标写入矩阵中。最后,我们创建一个窗口,并注册鼠标回调函数,然后在一个循环中显示矩阵,并等待按下 'q' 键退出。


原文地址: https://www.cveoy.top/t/topic/o3ak 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录