大家好,我正在尝试使用我从源代码构建的opencv-c++ API(版本4.4.0)。它已安装在/usr/local/中。我只是试图使用以下代码加载和显示图像 -
#include <iostream>
#include <opencv4/opencv2/opencv.hpp>
#include <opencv4/opencv2/core.hpp>
#include <opencv4/opencv2/imgcodecs.hpp>
#include <opencv4/opencv2/highgui.hpp>
#include <opencv4/opencv2/core/cuda.hpp>
using namespace cv;
int main()
{
std::string image_path = "13.jpg";
cv::Mat img = cv::imreadmulti(image_path, IMREAD_COLOR);
if(img.empty())
{
std::cout<<"COULD NOT READ IMAGE"<<std::endl;
return 1;
}
imshow("Display Window", img);
return 0;
}
当我进行编译时,它会在编译期间抛出以下错误 -
In file included from /CLionProjects/opencvTest/main.cpp:2:
/usr/local/include/opencv4/opencv2/opencv.hpp:48:10: fatal error: opencv2/opencv_modules.hpp: No such file or directory
#include "opencv2/opencv_modules.hpp"
我的Cmake如下所示 -
cmake_minimum_required(VERSION 3.15)
project(opencvTest)
set(CMAKE_CXX_STANDARD 17)
include_directories("/usr/local/include/opencv4/opencv2/")
add_executable(opencvTest main.cpp)
target_link_libraries(opencvTest PUBLIC "/usr/local/lib/")
我不知道我在这里做错了什么... 这可能是一个新手问题,但我刚刚开始使用C++中的OpenCV
/usr/local/include/opencv4
添加到你的包含目录中,而不是/usr/local/include/opencv4/opencv2
。 - drescherjminclude_directories("/usr/local/include/")
。你的包含路径和包含指令中都不应该有 opencv4/opencv2。包含指令从包含路径停止的地方开始。 - johnopencv4/opencv2/opencv.hpp
中生成的,它无法找到"opencv_modules"
,即使它们在同一个目录中。我也尝试了你的建议,但它并没有起作用,不过我认为这实际上不会有什么区别...虽然我可能错了。 - Atharva Dubeytasks.json
:"-I/usr/local/include/opencv4",
。 - EE_G_RLP