OpenCV+Python实现鼠标点击图像获取RGB与HSV值
本文介绍如何使用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值的完整内容,希望能为读者提供参考,也欢迎大家继续支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









