gpt4 book ai didi

c++ - Qt Creator 在链接到 OpenCV 时给我一个错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:00 26 4
gpt4 key购买 nike

我在网上找到了一个简单的 OpenCV 程序。我正在尝试在 Qt Creator 中编译它。源代码如下(main.cpp):

#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;

Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
cvtColor(frame, edges, COLOR_BGR2GRAY);
GaussianBlur(edges, edges, Size(7,7), 1.0, 1.0);
Canny(edges, edges, 0, 30, 3);
imshow("edges", edges);
if(waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}

这是我的 .pro 文件:

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

CONFIG += link_pkgconfig
PKGCONFIG += opencv

SOURCES += main.cpp
INCLUDEPATH += /usr/local/include/opencv2

LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_shape -lopencv_videoio

当我构建项目时,出现以下链接器错误(以及其他类似错误):

error: undefined reference to `cv::VideoCapture::VideoCapture(int)'

但是,当使用一个简单的 CMake 文件时,它可以完美地构建和运行。我的 CMakeLists.txt 非常简单:

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage main.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

我还需要设置一些其他路径吗?

最佳答案

首先检查你是否安装了OpenCV的所有依赖。可能您还需要安装 FFmpeg

然后替换:

LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_shape -lopencv_videoio

通过这个:

LIBS += -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_shape -lopencv_videoio

您还需要添加特定的 OpenCV 配置:

CONFIG += opencv

或者:

unix: CONFIG += link_pkgconfig
unix: PKGCONFIG += opencv

它对我有那些小的改变。

关于c++ - Qt Creator 在链接到 OpenCV 时给我一个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55334495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com