带有QT的Opencv window中的鼠标指针样式
Mouse pointer style in Opencv window with QT
我基于图像处理为我的项目定制了带有 Cuda 9.2 和 QT 5.9.6 的 opencv 4.0.1。在应用程序中,需要用户输入,用户点击由 opencv namedWindow 函数显示的图片的某些点。 opencv 函数 setMouseCallback 正常工作没有任何问题。但是 window 上的光标是默认的箭头形状,用户需要一些自定义光标形状,如十字光标。
我已经尝试过使用 Qcursor 方法,但其中 none 正在使用 opencv 'namedWindow'。
namedWindow("Original_1",WINDOW_FREERATIO);
imshow("Original_1", frame1_1); //show the frame in "MyVideo" window
我认为 namedWindow
和 imshow
方便 类,可以快速获得结果。不太适合具有大量设置的成熟应用程序。它们也没有无缝集成到 Qt 框架中。
我建议你走下面的路。首先,你应该 convert cv::Mat to an QImage.
其次,您可以创建一个简单的 QDialog
,其中包含显示 QImage
的框架。然后你可以在这个 QImage
对象上调用 setCursor
。
我基于图像处理为我的项目定制了带有 Cuda 9.2 和 QT 5.9.6 的 opencv 4.0.1。在应用程序中,需要用户输入,用户点击由 opencv namedWindow 函数显示的图片的某些点。 opencv 函数 setMouseCallback 正常工作没有任何问题。但是 window 上的光标是默认的箭头形状,用户需要一些自定义光标形状,如十字光标。
我已经尝试过使用 Qcursor 方法,但其中 none 正在使用 opencv 'namedWindow'。
namedWindow("Original_1",WINDOW_FREERATIO);
imshow("Original_1", frame1_1); //show the frame in "MyVideo" window
我认为 namedWindow
和 imshow
方便 类,可以快速获得结果。不太适合具有大量设置的成熟应用程序。它们也没有无缝集成到 Qt 框架中。
我建议你走下面的路。首先,你应该 convert cv::Mat to an QImage.
其次,您可以创建一个简单的 QDialog
,其中包含显示 QImage
的框架。然后你可以在这个 QImage
对象上调用 setCursor
。