为什么opencv imshow()创建的新窗口与调试模式下的namedWindow()具有相同的名称?
我想创建一个垫子,并在名为“figure”的窗口中显示它 如果没有问题,应该有一个名为“figure”的窗口,并接受任何键停止 在发布模式下,以下代码可以很好地工作。 但在调试模式下,为什么opencv imshow()创建的新窗口与调试模式下的namedWindow()具有相同的名称?,opencv,Opencv,我想创建一个垫子,并在名为“figure”的窗口中显示它 如果没有问题,应该有一个名为“figure”的窗口,并接受任何键停止 在发布模式下,以下代码可以很好地工作。 但在调试模式下,imshow()将创建一个新窗口,该窗口与通过namefown()创建的窗口同名。只有通过namedWindow()创建的图形才接受我的输入 #include<opencv2\opencv.hpp> const std::string winName = "figure"; int main() {
imshow()
将创建一个新窗口,该窗口与通过namefown()创建的窗口同名。只有通过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);
}
#包括
const std::string winName=“figure”;
int main(){
cv::Mat m;
cv::namedWindow(winName,cv::WINDOW_AUTOSIZE);
m、 创建(300,300,CV_32FC3);
m、 设置为(cv::标量(0.0f、2.0f、5.0f));
cv::imshow(winName,m);
cv::waitKey(0);
}
此问题是由于错误的链接设置造成的
- 在调试中,只需链接到调试库
opencv_world331d.lib
- 在发布中,您只需要链接到发布库
opencv_world331.lib
此问题是由于错误的链接设置造成的
- 在调试中,只需链接到调试库
opencv_world331d.lib
- 在发布中,您只需要链接到发布库
opencv_world331.lib
@Miki如果不使用namedWindow()
,窗口将立即消失,程序将立即停止。根据你的建议,代码仍然不起作用。这更奇怪。你在这里不需要名字。我怀疑项目设置存在一些问题。可以显示在调试模式下链接的库吗?@Miki Library:D:\ProgramFiles\opencv3.3.1\opencv\build\x64\vc14\lib$(LibraryPath)
目录:D:\ProgramFiles\opencv3.3.1\opencv\build\include\opencv2;D:\ProgramFiles\opencv3.3.1\opencv\build\include\opencv;D:\ProgramFiles\opencv3.3.1\opencv\build\include$(IncludePath)
其他依赖项opencv_world331.lib;opencv_world331d.lib;%(附加依赖项)
好的,这可能就是问题所在。在发行版中,您应该只链接到opencv\u world331.lib
,在调试版中只链接到opencv\u world331d.lib
。另外,我假设您使用的是visual studio 2015,并且您的项目是64位的,对吗?@Miki-Additional-Dependenciesopencv_-world331.lib;opencv_world331d.lib;%(附加依赖项)如果不使用namedWindow()
,窗口将立即消失,程序将立即停止。根据你的建议,代码仍然不起作用。这更奇怪。你在这里不需要名字。我怀疑项目设置存在一些问题。可以显示在调试模式下链接的库吗?@Miki Library:D:\ProgramFiles\opencv3.3.1\opencv\build\x64\vc14\lib$(LibraryPath)
目录:D:\ProgramFiles\opencv3.3.1\opencv\build\include\opencv2;D:\ProgramFiles\opencv3.3.1\opencv\build\include\opencv;D:\ProgramFiles\opencv3.3.1\opencv\build\include$(IncludePath)
其他依赖项opencv_world331.lib;opencv_world331d.lib;%(附加依赖项)
好的,这可能就是问题所在。在发行版中,您应该只链接到opencv\u world331.lib
,在调试版中只链接到opencv\u world331d.lib
。另外,我假设您使用的是visual studio 2015,并且您的项目是64位的,对吗?@Miki-Additional-Dependenciesopencv_-world331.lib;opencv_world331d.lib;%(附加依赖项))
@很高兴它起了作用;)谢谢我遇到了同样的问题,因为我的道具表链接了调试库和发布库。这在opencv341中运行良好,但在opencv341_构建中中断。将我的
标记拆分为
和
,以便一次只链接一个opencv库,修复了此问题。@很高兴它有所帮助;)谢谢我遇到了同样的问题,因为我的道具表链接了调试库和发布库。这在opencv341中运行良好,但在opencv341_构建中中断。将我的
标记拆分为
和
,以便一次只链接一个opencv库,修复了该问题。