精华内容
下载资源
问答
  • ubuntu g++ opencv example 编译测试 参考: https://stackoverflow.com/questions/58478074/how-to-fix-fatal-error-opencv2-core-hpp-no-such-file-or-directory-for-opencv 确认opencv版本及位置 我是基于...


    参考:

      https://stackoverflow.com/questions/58478074/how-to-fix-fatal-error-opencv2-core-hpp-no-such-file-or-directory-for-opencv
    

    1. 确认opencv版本及位置

    我是基于conda安装的,位置为

    ~/.conda/pkgs/opencv3-3.1.0-py36_0/
    

    1.1 搜索查看opencv路径方法:

       sudo find / -iname "*opencv*"
    

    2.想运行opencv 自带的示例程序。

    g++ example.cpp -o example
    

    异常为找不到头文件:

     “fatal error: opencv2/core.hpp: No such file or directory”
    

    尝试在源码里面指定绝对位置可以解决,但是太多了程序员显然不能这么干:
    so How to fix “fatal error: opencv2/core.hpp: No such file or directory”

    3.解决方案 :

    编译时指定include路径
    

    示例1

    g++ example.cpp -o example -I/home/b***/.conda/pkgs/opencv3-3.1.0-py36_0/include/
    

    示例2:

    g++ main.cpp -o main11 -I/usr/local/include/opencv4/
    

    eg 3:

     g++ main.cpp -o m1 -I /usr/include/opencv4/   -L /usr/lib/aarch64-linux-gnu/libopencv*.so
    

    you may meet errors like this:

    fatal error: opencv2/highgui.hpp: No such file or directory
     #include <opencv2/highgui.hpp>
    

    solution:

    check your opencv include path,and modifiy the g++ parameters

    sudo find / -iname "highgui.hpp"
    

    check your opencv lib path,and modifiy the g++ parameters

      sudo find / -iname "libopencv*.so*"
    
    展开全文
  • g++编译opencv demo 首先上demo主程序代码,另存位opencv_demo.cpp #include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main(void) { Mat src_image_...

    g++编译opencv demo

    首先上demo主程序代码,另存位opencv_demo.cpp

    #include <iostream>
    #include <opencv2/opencv.hpp>
    
    using namespace std;
    using namespace cv;
    
    int main(void)
    {
      Mat src_image_ = imread("test.jpg");   // 读取当前目录下的test.jpg图片
      imshow("src_image_", src_image_);   // 打开图片文件
      waitKey(5000);     // 停留5秒钟
      return 0;
    }
    

    g++方法1:

    借助于pkg-config命令

    g++ `pkg-config opencv --cflags` opencv_demo.cpp -o demo2 `pkg-config opencv --libs`
    

    这里很容易出现以下错误

    g++: error: pkg-config opencv --cflags: 没有那个文件或目录
    g++: error: pkg-config opencv --libs: 没有那个文件或目录
    

    主要原因是包裹pkg-config opencv --cflags代码的不是单引号,而是反引号(键盘上tab上面的一个键,它的shift+的按键是~),改过之后就会编译成功

    g++方法2
    启发在于pkg-config命令,因为pkg-config opencv --cflags命令直接输在控制台会返回opencv 的include目录,前面带-I(大写的字母i)表示后面接着的是include 目录
    同理pkg-config opencv --libs命令输入在控制台,返回的是opencv的lib目录和lib文件,前面-L后面跟的是lib目录,前面是-l(小写的字母L)后面跟的是静态库的.so文件,相比目录下的.so文件你会发现-l后面直接跟省略了尾缀(".so")和头缀(“lib”)的文件名*
    如果你知道依赖的包含目录、库目录和库文件就可以手工设置编译了,我是直接用pkg-config方法获取的包含目录、库目录、库文件进行命令设置编译的,代码如下(供参考)

    g++ -I/usr/local/include/opencv -I/usr/local/include opencv_demo.cpp -o demo -L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
    

    解析一下上面的命令
    g++ :表示用g++进行编译生成;
    -I(大写的字母i)xxxxxx:表示包含的目录,如果有多个目录则每个目录前都要带上-I的帽子。
    opencv_demo.cpp:表示待编译的cpp文件;
    -o xxxx:表示编译出来生成的程序名称,我这个程序生成出来的名字叫demo
    -Lxxxxxxxx:表示lib所在的文件夹目录;
    -l(小写的字母L)xxx:表示需要链接的静态库文件,它在lib目录下,去掉了尾缀(".so")和头缀(“lib”)的文件名,如果有多个静态库,则每个静态库前面都要加上一个-l的帽子

    makefile的写法

    makefile的写法参考网上教程
    代码如下:

    cc = g++
    promName = test2
    source = opencv_demo.cpp
    
    OPENCV_INCLUDE = -I/usr/local/include/opencv -I/usr/local/include
    OPENCV_LIBS = -L/usr/local/lib
    OPENCV_LIBSDIR = -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
    
    $(promName):$(source)
    	$(cc) $(OPENCV_INCLUDE) -o $(promName) $(source) $(OPENCV_LIBS) $(OPENCV_LIBSDIR)
    

    从上面向下看代码意思
    第1行:将g++指定给cc变量,以后可以通过 ( c c ) 表 示 g + + 指 令 第 2 行 : 将 编 译 输 出 的 程 序 命 名 为 t e s t 2 , 将 这 个 名 字 变 量 赋 给 p r o m N a m e , 以 后 可 以 通 过 (cc)表示g++指令 第2行:将编译输出的程序命名为test2,将这个名字变量赋给promName ,以后可以通过 (cc)g++2test2,promName$(promName )

    展开全文
  • 使用g++编译opencv程序

    千次阅读 2018-07-02 01:38:09
    在centos6.9下安装好opencv3.2.库后,写了第一个显示图片的小程序,结果linux下的编译问题让我折腾了大半天。ShowImage.cpp程序如下:#include &lt;stdio.h&gt; #include &lt;opencv2/core.hpp&gt; ...

    在centos6.9下安装好opencv3.2.库后,写了第一个显示图片的小程序,结果linux下的编译问题让我折腾了大半天。ShowImage.cpp程序如下:

    #include <stdio.h>
    #include <opencv2/core.hpp>
    #include <opencv2/highgui.hpp>
    
    int main()
    {
            cv::Mat image;
            image= cv::imread("twins.jpg");
            if(image.empty())
            {
                    printf("no image exist");
                    return 0;
            }
            cv::namedWindow("Original Image");
            cv::imshow("Original Image",image);
            cv::waitKey(0);
            return 0;
    }
    

    编译过程:

    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    g++ $(pkg-config --libs --cflags opencv) ShowImage.cpp -o ShowImage
    ./ShowImage
    

    其中遇到的问题:

    1,使用pkg-config的原因

    g++编译c++程序时,需要用-L-I来分别制定连接库和头文件信息,但是opencv库文件和头文件繁多,不可能每次编译都写上一堆连接信息,而且不同人可能会安装在不同路径,查找也困难,于是需要使用pkg-config工具来自动找出依赖库和头文件信息,仅需输入pkg-config–libs –cflags opencv


    2,输入pkg-config –libs –cflags opencv命令查找opencv依赖项时报错如下:

    Package opencv was not found in the pkg-config search path.
    Perhaps you should add the directory containing `opencv.pc'
    to thePKG_CONFIG_PATH environment variable
    No package 'opencv'found

    在pkg-config的搜索路径下找不到opencv库,可能需要将包含opencv.pc的目录添加到PKG_CONFIG_PATH环境变量中。

    那么,执行完export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:$PKG_CONFIG_PATH之后,再执行pkg-config–libs –cflags opencv结果如下:

    [jello@jello ShowImage]$ pkg-config --libs --cflags opencv
    -I/usr/local/include/opencv -I/usr/local/include  -L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core 
    

    可以看到:由于使用了pkg-config工具来获得库的选项,所以不论库安装在什么目录下,都可以使用相同的编译和连接命令,带来了编译和连接界面的统一。

    3, pkg-config的信息从哪来

    第一种:取系统的/usr/lib下的所有*.pc文件。

    第二种:PKG_CONFIG_PATH环境变量所指向的路径下的所有*.pc文件。

    第一种系统的/usr/lib路径是所有程序都会自动搜索的路径,不需要写在环境变量中。

    那么,pc文件到底写了什么? 比如/usr/local/lib/pkgconfig/opencv.pc

    # Package Information for pkg-config
    
    prefix=/usr/local
    exec_prefix=${prefix}
    libdir=${exec_prefix}/lib
    includedir_old=${prefix}/include/opencv
    includedir_new=${prefix}/include
    
    Name: OpenCV
    Description: Open Source Computer Vision Library
    Version: 3.2.0
    Libs: -L${exec_prefix}/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
    Libs.private: -L/usr/lib -lpng -lz -ltiff -ljasper -ljpeg -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lglib-2.0 -ldc1394 -ldl -lm -lpthread -lrt
    Cflags: -I${includedir_old} -I${includedir_new}

    4,执行编译好的ShowImage时出错

    ./ShowImage: error while loading shared libraries: libopencv_shape.so.3.2: cannot open shared object file: No such file or directory

    显示找不到库文件,即是LD_LIBRARY_PATH未添加/usr/local/lib的原因,同样,系统路径/usr/lib是不需要添加而自动搜索的。

    注意,环境变量的的设置只对当前终端窗口有效。

    展开全文
  • 只需在命令后添加如下语句即可 $(pkg-config --cflags --libs opencv) ...g++ holeFill.cpp -o test $(pkg-config --cflags --libs opencv) 如果使用CMakeLists.txt,在版本的选择上可能更方便。

    只需在命令后添加如下语句即可

    $(pkg-config --cflags --libs opencv)
    

    g++ holeFill.cpp -o test $(pkg-config --cflags --libs opencv)
    

    如果使用CMakeLists.txt,在版本的选择上可能更方便。

    展开全文
  • g++ 编译调用opencv函数的c++程序时, 可以使用如下 makefile mainapp: main.o g++ -o mainapp main.o -lopencv_core -lopencv_highgui main.o: main.cpp g++ -c main.cpp clean: rm -rf main main.o ...
  • g++ 编译opencv

    2019-01-31 11:11:40
    先安装好opencv和 pkg-config. 看一下pkg-config设置的目录是否正确, 假设opencv的目录是/usr/loacal/include 和 /usr/local/lib: $ pkg-config --cflags --libs opencv -I/usr/local/include/opencv -I/usr/local/...
  • Ubuntu16 Linux Opencv4安装与g++编译运行 Ubuntu16 Linux Opencv4安装与g++编译运行 别人写的Opencv4基本安装步骤(安装结束在CLion环境中可运行,但是g++可能会有问题):https://www.jianshu.com/p/f54b0fc13811 ...
  • g++编译opencv项目

    万次阅读 2016-12-11 00:29:44
    先安装好opencv和 pkg-config. 看一下pkg-config设置的目录是否正确, 假设opencv的目录是/usr/loacal/include 和 /usr/local/lib:$ pkg-config --cflags --libs opencv -I/usr/local/include/opencv -I/usr/local/...
  • g++ opencv编译方法

    千次阅读 2014-10-17 20:23:09
    g++ `pkg-config opencv --libs --cflags opencv` main.cpp
  • g++ 编译C++ opencv 文件

    千次阅读 2018-10-11 11:58:53
    相关资料: linux下编译C++写的opencv程序 http://hihozhou.com/blog/2017/05/11/linux-compile-opencv-c++-file.html ...Linux 环境下使用g++编译C++ https://blog.csdn.net/dengshuai_super/article/d...
  • g++调用OpenCV

    千次阅读 2013-01-09 16:50:07
    gcc/g++ Download OpenCV source codes (.tar.gz) Root user tar zxvf opencv-1.0.0.tar.gz; cd opencv-1.0.0 ./configure make make install General user tar zxvf opencv-1.0.0.tar.gz; cd
  • windows下,对opencv进行gcc/g++编译

    千次阅读 2018-12-03 10:52:59
    opencv官网下载的Windows安装包有source文件夹和build文件夹,其中build文件夹是已经编译好的,里面有用于VS配置的库,source文件夹包含源码和编译配置文件,可以借助cmake编译成可供多种类型的编译器使用的所需文件...
  • opencv之在Linux下编译opencv程序的两种方式g++、cmake

    万次阅读 多人点赞 2016-10-19 23:21:44
    从电子信息工程跳到计算机,在研究图像处理的东西,发现opencv很好玩,想深入学一下,没有特别好的...所有代码编写均在Ubuntu16.04+opencv2.4.9+g++5.4.0+cmake3.5.1下完成。 以前写的文章介绍了Windows和Linux下open
  • 使用g++编译OpenCV程序

    千次阅读 2013-06-21 10:51:41
    源码: ... #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/highgui.hpp" #include #include using namespace cv; using
  • 1、g++ 代码文件名.cpp -o 生成文件名 `pkg-config opencv --cflags --libs` 2、g++ `pkg-config opencv --cflags` 代码文件名.cpp -o 生成文件名 `pkg-config opencv --libs` 3、g++ 代码文件名.cpp `pkg-...
  • opencv g++编译问题解决

    2021-09-09 21:58:14
    (base) kylin@kylin-FT2004:~/桌面/ex3$ g++ -o sample2 mainpanda.cpp `pkg-config --cflags --libs opencv` 打开上面这句话的文件夹**~/桌面/ex3** 输入 g++ -o sample2 mainpanda.cpp `pkg-config --cflags --...
  • OepnCV已编译:学习OpenCV3:Cmake+MinGW编译OpenCV 2. 环境配置   在电脑的环境变量path中添加OpenCV目录。 D:\opencv3410\build_mingw\x64\mingw\bin 3. VS Code配置   在VS Code中配置如下4个文件。其中...
  • Linux---g++编译opencv

    2018-11-12 17:25:27
    转载:https://blog.csdn.net/zhang_shuai12/article/details/53565446
  • g++编译动态链接库编译简单的动态链接库代码与文件格式编译与调用1、生成动态链接库2、编译调用生成的动态库3、添加环境变量路径4、运行编译依赖第三方库(opencv)的动态链接库代码与文件格式编译与调用 编译简单的...
  • 在Windows下配置C, C++编译OpenCV

    万次阅读 2017-08-23 00:26:11
    OPENCV是一个很棒的机器学习和机器视觉的开源库,支持众多编程语言和操作系统平台,主要应用在人工智能和图像处理上,不再说费话了,直接重点。OPENCV原始语言是使用C和C++开发,支持PYTHON和java.。所以要想学好...
  • g++ gaussianBlur.cpp -o test `pkg-config --cflags --libs opencv` 执行编译生成的可执行文件: ./test gaussianBlur.cpp内容如下: #include <iostream> #include <stdio.h> #include <opencv2/...
  • 1.下载并解压源码,在Opencv源码中创建文件夹build/和install/文件夹 2.进入build/文件夹使用cmake-gui配置 配置源码位路径和build路径 选择交叉编译模式 Operating System(系统名称):Linux C:...
  • 首先,我使用的是opencv3里的例程,例子随便,正确的编译指令是使用g++,为: 其中包含pkg的两个点是键盘左上角的那个按键---这个很重要,还有就是这两个pkg在linux下使用了第三方库时都是必须写上去的, ...
  • 海思交叉编译opencv4(以opencv400为例) 海思交叉编译器的安装 解压aarch64-himix100-linux.tgz,然后使用sudo权限运行gcc-arm-none-eabi-4_9-2015q3.install 正常情况下应无报错信息。 opencv的编译 下载opencv...
  • linux c++ opencv4安装指南

    千次阅读 2020-11-22 15:48:45
    python的opencv安装很简单,通过pip就可以完成,但是c++在安装opencv4的时候需要注意一些。下面给出linux下安装opencv4的步骤。 1.安装依赖 sudo apt-get install cmake sudo apt-get install build-essential ...
  • ubuntu命令行编译opencv程序

    千次阅读 2018-05-06 12:43:24
    学习了下,记录一下:1、ubuntu安装完opencv后(一般都装在了/usr/local这个目录下)检查下 /usr/local/lib/pkgconfig目录下是否有/opencv.pc一般情况下都会有的然后sudo gedit /usr/local/lib/pkgconfig/opencv.pc...
  • 背景:需要在Hi3559a上运行opencv相关程序(Multi-core模式)。...交叉编译器:aarch64-himix100-linux-g++aarch64-himix100-linux-gcc 步骤如下: 1. 下载opencv源码并解压(略) 2. apt-get install cma...
  • VS code搭建OpenCV环境(使用CMake和MinGW-w64)软件环境MinGW-w64安装与配置CMake安装与配置使用 CMake 生成 OpenCV 的 Makefile编译 OpenCVVScode配置参考链接 用vscode来写opencv代码需要自己编译OpenCV,主要...
  • 在Windows使用mingw32编译opencv

    千次阅读 2019-02-27 23:44:01
    记录opencv编译过程,遇到了很多坑,搜索了很多资料...主要安装gcc, g++, make工具。可以通过mingw-get安装。安装方法可以在网上搜索到。我安装的最新版本: d:\work\javaproject&amp;gt;gcc --version gcc (Mi...
  • opencv410_g++7.3.0

    2019-04-30 22:25:14
    OpenCV4.1.0,包含contrib模块。Ubuntu18.04下g++7.3.0编译。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,782
精华内容 3,512
关键字:

g++opencv