opencv - 为什么 opencv imshow() 创建一个新窗口与 Debug模式下的 namedWindow() 同名?

标签 opencv

我想创建一个垫子并将其显示在名为“figure”的窗口中。

如果没有问题,应该有一个名为“figure”的窗口,接受任意键停止。

在 Release模式下,以下代码可以正常工作。 但在 Debug模式下,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);

}

最佳答案

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

  • Debug中,您只需要链接到调试库opencv_world331d.lib
  • Release中,您只需要链接到发布库opencv_world331.lib

关于opencv - 为什么 opencv imshow() 创建一个新窗口与 Debug模式下的 namedWindow() 同名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47608620/

相关文章:

c++ - OpenCV 中的自定义实现

image - Eigen 变换 : Why do high eigenvalues indicate regions of text?

android - 使用 Android 相机扫描对象

python - 拉普拉斯金字塔后的重建图像与原始图像不一样

python - 如何在 Python OpenCV 中增加图像的对比度

python - 如何从轮廓中分割圆?

c++ - at() 和 row().col() 之间的区别

opencv - 防止图像减法中的信息丢失

opencv - 图像中的箭头分割

java - 在拥挤的图像中使用 opencv 确定文本区域