为什么opencv imshow()创建一个新窗口与namedWindow()在调试模式下的名称相同?

时间:2017-12-02 13:53:57

标签: opencv

我想创建一个垫子并在一个名为" figure"。

的窗口中显示它

如果没有错,应该有一个名为"数字"的窗口,并接受任何要停止的键。

在发布模式下,以下代码可以正常运行。 但在调试模式下,imshow()将创建一个新窗口,该窗口与nameWindow()创建的窗口具有相同的名称。只有namedWindow()创建的数字才接受我的输入。

#include<opencv2\opencv.hpp>

const std::string winName = "figure";
int main() {
    cv::Mat m;
    cv::namedWindow(winName,cv::WINDOW_AUTOSIZE);
    m.create(300, 300, CV_32FC3);
    m.setTo(cv::Scalar(0.0f, 2.0f, 5.0f));

    cv::imshow(winName, m);
    cv::waitKey(0);

}

1 个答案:

答案 0 :(得分:7)

此问题是由于链接设置错误造成的。

  • 调试中,您只需要链接到调试库SimpleFSDirectory
  • 发布中,您只需要链接到发布库this(path, FSLockFactory.getDefault());