OpenCV+Python实现鼠标点击图像获取RGB与HSV值

Oliver
Oliver
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍如何使用OpenCV和Python实现鼠标点击图像时获取该点的RGB(BGR)及HSV颜色值。通过绑定鼠标事件,程序可实时显示点击坐标及对应的BGR、灰度或HSV数据,适用于Windows环境下无法直接查看HSV值的场景,提供完整的代码示例与操作说明。

OpenCV鼠标点击获取颜色值实现

以下直接展示核心代码实现。


import cv2
 
# 读取图片并缩放方便显示
img = cv2.imread('D:/6.jpg')
height, width = img.shape[:2]
size = (int(width * 0.2), int(height * 0.2))
# 缩放
img = cv2.resize(img, size, interpolation=cv2.INTER_AREA)
 
# BGR转化为HSV
HSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
 
# 鼠标点击响应事件
def getposHsv(event, x, y, flags, param):
 if event==cv2.EVENT_LBUTTONDOWN:
  print("HSV is", HSV[y, x])
 
def getposBgr(event, x, y, flags, param):
 if event==cv2.EVENT_LBUTTONDOWN:
  print("Bgr is", img[y, x])
 
cv2.imshow("imageHSV", HSV)
cv2.imshow('image', img)
cv2.setMouseCallback("imageHSV", getposHsv)
cv2.setMouseCallback("image", getposBgr)
cv2.waitKey(0)

查看图像像素BGR、灰度与HSV值

补充知识:利用Python和OpenCV查看图像中任意像素点的BGR值、灰度值及HSV值。

具体实现如下所示:


  # -*- coding:utf-8 -*-
  import cv2
  
  img = cv2.imread('11_13/120002.jpg')
  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
  
  def mouse_click(event, x, y, flags, para):
    if event == cv2.EVENT_LBUTTONDOWN: # 左边鼠标点击
      print('PIX:', x, y)
      print("BGR:", img[y, x])
      print("GRAY:", gray[y, x])
      print("HSV:", hsv[y, x])
  
  if __name__ == '__main__':
    cv2.namedWindow("img")
    cv2.setMouseCallback("img", mouse_click)
    while True:
      cv2.imshow('img', img)
      if cv2.waitKey() == ord('q'):
        break
    cv2.destroyAllWindows()

在Windows系统中,画图软件可直接查看图片的RGB值,但无法直接查看HSV值。借助以下小程序即可轻松实现这一功能。

附一张OpenCV中HSV颜色范围参考图:

以上即为OpenCV结合Python实现鼠标点击图像并输出该点RGB和HSV值的完整内容,希望能为读者提供参考,也欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表