定义获取鼠标像素
import cv2 def get_pixel(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDOWN: # 输出像素值和坐标信息到控制台 print('Pixel value at (', x, ', ', y, ') :', img[y, x]) # 在图像上绘制坐标和像素值 font = cv2.FONT_HERSHEY_SIMPLEX txt = 'Pixel value: ' + str(img[y, x]) + ' Coord: (' + str(x) + ', ' + str(y) + ')' cv2.putText(img, txt, (x, y), font, 0.5, (255, 0, 0), 2)
读取图像
img = cv2.imread('20230511200757_11189948_1_1.jpg')
显示图像并设置鼠标事件回调函数
cv2.namedWindow('Image') cv2.setMouseCallback('Image', get_pixel) while True: # 显示图像 cv2.imshow('Image', img) # 等待用户按下键盘上的任意键 k = cv2.waitKey(0) if k == ord('q'): break cv2.destroyAllWindows()
完整代码
import cv2 def get_pixel(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDOWN: # 输出像素值和坐标信息到控制台 print('Pixel value at (', x, ', ', y, ') :', img[y, x]) # 在图像上绘制坐标和像素值 font = cv2.FONT_HERSHEY_SIMPLEX txt = 'Pixel value: ' + str(img[y, x]) + ' Coord: (' + str(x) + ', ' + str(y) + ')' cv2.putText(img, txt, (x, y), font, 0.5, (255, 0, 0), 2) # 读取图像 img = cv2.imread('20230511200757_11189948_1_1.jpg') # 显示图像并设置鼠标事件回调函数 cv2.namedWindow('Image') cv2.setMouseCallback('Image', get_pixel) while True: # 显示图像 cv2.imshow('Image', img) # 等待用户按下键盘上的任意键 k = cv2.waitKey(0) if k == ord('q'): break cv2.destroyAllWindows()
结果展示
使用方法
鼠标点击图中任意一点, 对话框会返回改点坐标和像素值。如果想在图中展示,点击一点后按ES即可。退出按“q"!
当然你可以标记触发点,可以继续改进!