我知道 OpenCV gui 工具不是线程安全的,因此不可能从不同的线程控制多个窗口。
但是,是否可以在一个线程上打开一个窗口(或任何 GUI 元素),然后关闭它,然后从另一个线程启动它?类似的东西:
void show() {
cv::VideoCapture cap(2);
cv::Mat frame;
cap >> frame;
cv::namedWindow("Win");
cv::imshow("Win", frame);
cv::waitKey(0);
cv::destroyAllWindows();
}
int main() {
show();
std::thread t(show);
t.join();
return 0;
}