gpt4 book ai didi

QT + OpenCV 未定义对 cv::stereoBM::create(int,int) 的引用

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

我需要你的帮助来解决 OpenCV cv::StereoBM 中的一个问题,因为当我尝试编译以下代码时遇到错误:

 std::string myImgLeftString = myImgLeft.toUtf8().constData();
std::string myImgRightString = myImgRight.toUtf8().constData();
cv::Mat img1 = cv::imread(myImgLeftString,CV_LOAD_IMAGE_COLOR);
cv::Mat img2 = cv::imread(myImgRightString,CV_LOAD_IMAGE_COLOR);
cv::Mat img3;
cv::Mat img1grey, img2grey;
cv::cvtColor(img1,img1grey,CV_BGR2GRAY);
cv::cvtColor(img2,img2grey,CV_BGR2GRAY);

cv::Ptr<cv::StereoBM> match = cv::StereoBM::create(0,21);
match->compute(img1grey,img2grey,img3);

它给了我:对 cv::StereoBM::create(int,int) 的 undefined reference 但是我已经包括了所有必要的和不必要的标题

#include <opencv2/core.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/calib3d.hpp>
#include <opencv2/imgproc.hpp>
#include <stdio.h>
#include <iostream>
#include <opencv2/core/affine.hpp>
#include "opencv2/core/hal/intrin.hpp"
#include "opencv2/core/utility.hpp"
#include "opencv2/ximgproc.hpp"

我在 .pro 文件中添加了两行代码

LIBS += -L ./opt/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs
INCLUDEPATH += -I /opt/local/stow/opencv-3.4.3

我不知道哪里出了问题,请帮忙,谢谢。

最佳答案

cv::StereoBM 位于 OpenCV 的 calib3d 模块中,因此您需要链接到该模块的 lib 文件,为此添加 -lopencv_calib3d 到 .pro 文件中的 LIBS:

LIBS += -L ./opt/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_calib3d

不要忘记在修改 .pro 文件后运行 qmake。

关于QT + OpenCV 未定义对 cv::stereoBM::create(int,int) 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58620770/

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