我想创建一个垫子并将其显示在名为“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/