使用cvShowImage,可以在OpenCV中轻松显示图像.但是,您如何告诉OpenCV在每个其他窗口的顶部显示窗口?
我在显示图像的同时运行全屏OpenGL应用程序.第一次OpenCV窗口弹出我的应用程序窗口,但如果我点击我的应用程序的窗口(即重点关注它),那么我无法让OpenCV回到顶部OpenGL窗口,即使在销毁和重新创建窗口时也是如此.
我想过每次重命名窗口,但还有另一种方法吗?
Beginning with OpenCV releases 3.4.8 and 4.1.2, setWindowProperty has a WND_PROP_TOPMOST property that you can set. Example Python code:
import cv2
import numpy as np
window_name = "image"
img = np.zeros([480, 640, 1])
cv2.imshow(window_name, img)
cv2.setWindowProperty(window_name, cv2.WND_PROP_TOPMOST, 1)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)
小智 8
好吧,我认为它适用于OSX和Windows.您只需要创建一个全屏窗口并在很短的时间内显示它,然后您的OpenCV的下一个窗口将在前面.所以,首先要打开一个全屏窗口:
cv::namedWindow("GetFocus", CV_WINDOW_NORMAL);
cv::Mat img = cv::Mat::zeros(100, 100, CV_8UC3);
cv::imshow("GetFocus", img);
cv::setWindowProperty("GetFocus", CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN);
waitKey(1);
cv::setWindowProperty("GetFocus", CV_WND_PROP_FULLSCREEN, CV_WINDOW_NORMAL);
destroyWindow("GetFocus");
Run Code Online (Sandbox Code Playgroud)
然后你可以打开实际显示图像的花药窗口:
Mat your_image = ...;
cv::namedWindow("ShowImg");
cv::imshow("ShowImg", your_image);
Run Code Online (Sandbox Code Playgroud)
这个对我有用.
| 归档时间: |
|
| 查看次数: |
11910 次 |
| 最近记录: |