【问题标题】:Python & Opencv : Realtime Get RGB Values When hovering mouse over picturePython和Opencv:将鼠标悬停在图片上时实时获取RGB值
【发布时间】:2022-01-21 03:59:17
【问题描述】:

我以前可以将鼠标悬停在显示的图像上,并在窗口底部实时获取像素值。

我不确定为什么它不再工作了,我在 Windows 10 上使用 Python 3.9.7 和 OpenCV 4.5.5,是否有特定版本的 python+oopencv 可以工作?

import cv2

img = cv2.imread("testImage.jpg")
cv2.imshow("img", img )
cv2.waitKey()
cv2.destroyAllWindows()

【问题讨论】:

  • 我使用的是 Python 3.7,cv2 版本 4.5.5,linux,它适用于我
  • @SPSharan 降级到 3.7.9 ,仍然是同样的问题。尝试使用pip install opencv-contrib-pythonpip install opencv-python 下载仍然是同样的问题。
  • 我认为你需要一个 OpenCV 的构建,它使用 Qt 作为 HighGUI 后端编译。 Windows 上的标准使用 WinAPI,而您使用imshow 得到的只是一个带有标题的窗口框架。版本无关紧要,从 2.4.x 到当前版本,我大约有 15 个,都一样。
  • 感谢@DanMašek 我在网上看到一些教程,它们是 CUDA + CUDNN + QT 等等。还有其他不太复杂的方法或命令可以做到这一点吗?

标签: python opencv


【解决方案1】:

@Christoph 建议了一个回调,但您无法放大图像

import cv2


def mouse_callback(event, x, y, flags, params):
    if event == 2:
        print(f"coords {x, y}, colors Blue- {img[y, x, 0]} , Green- {img[y, x, 1]}, Red- {img[y, x, 2]} ")


img = cv2.imread("testImage.jpg")

cv2.namedWindow("image")
cv2.setMouseCallback("image", mouse_callback)

cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多