【问题标题】:VideoCapture(0) and VideoCapture.open(0) Do Not Seem To Work With CMake (UBUNTU) (OpenCV4)VideoCapture(0) 和 VideoCapture.open(0) 似乎不适用于 CMake (UBUNTU) (OpenCV4)
【发布时间】:2020-09-06 15:01:09
【问题描述】:

我正在尝试打开我的内置摄像头以制作人脸检测程序,但我注意到 VideoCapture.open(0) 在我尝试运行 cmake 编译时不起作用,但在我运行时确实有效通过g++编译运行。

这个程序是项目的一部分,需要通过CMake编译,但似乎没有任何效果...

(我使用的是 Ubuntu)

当我使用时,我的代码编译并运行,打开内置摄像头(在if(capture.isOpened()) 上返回“true”)

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

但在if(capture.isOpened()) 上返回 false 并且当我通过 cmake 编译时不会打开内置摄像头。

我应该怎么做才能让它像使用 g++ 编译时一样运行?

编辑:删除了我的代码,因为它根本不是代码的问题。当我找到解决方案时会回答我自己的问题。

【问题讨论】:

  • make VERBOSE=1 将显示用于编译和链接项目可执行文件的确切命令行。您可以将这些命令行与您手动使用的命令行进行比较。

标签: c++11 ubuntu cmake g++


【解决方案1】:

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

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

正如 Tsyvarev 建议的那样,发现 g++ 包含来自 /usr/include 的 opencv,而 cmake 包含来自 /usr/local 的 opencv

我找到了这个解决方案: 先跑cd /opt/opencv/build && make uninstall,然后在我的项目文件夹里跑make,果然解决了问题,打开了摄像头。

我不确定是什么原因造成的,但如果这发生在任何人身上,希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-09-23
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多