VideoCapture(0) 和 VideoCapture.open(0) 似乎无法与 CMake (UBUNTU) (OpenCV4) 一起工作。

问题描述 投票:0回答:1

我试图打开我的内置摄像头以制作一个人脸检测程序,但我注意到VideoCapture.open(0)在我试图通过cmake编译运行时不工作,但在我通过g++编译和运行时却工作了。

这个程序是一个项目的一部分,通过CMake编译是必要的,但似乎没有任何工作......。

(我使用的是Ubuntu)

我的代码编译并运行后,打开了内置的摄像机(返回 "true")。if(capture.isOpened())),当我使用

g++ main.cpp FaceDetection.cpp `pkg-config --cflags --libs opencv4`

但在以下情况下返回false if(capture.isOpened()) 当我通过 cmake 编译时,却没有打开内置的摄像头。

有什么办法可以让我在用g++编译的时候也能像这样运行?

编辑: 删除了我的代码,因为这根本不是代码的问题。我将回答我自己的问题,因为我找到了一个解决方案。

c++11 ubuntu cmake g++
1个回答
0
投票

make VERBOSE=1, cmake ../ --log-level=VERBOSE

g++ main.cpp FaceDetection.cpp `pkg-config --cflags --libs opencv4`

按照Tsyvarev的建议,发现g++从usrinclude中包含opencv,而cmake从usrlocal中包含opencv。

我发现这个 解决方法:Ran cd /opt/opencv/build && make uninstall 先而后之 make 在我的项目文件夹中,这实际上解决了问题,打开了相机。

我不知道是什么原因造成的,但如果有人遇到这种情况,希望对大家有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.