vscode ubuntu编译配置opencv源码

9 篇文章 0 订阅
5 篇文章 0 订阅

        编译opencv源码主要是为了用于调试C++等程序,而python只需要通过pip安装即可。本文主要介绍CPU版本编译。CUDA版本opencv请参考文末的参考文献[1]。

1、opencv源码下载

        下载地址为Releases · opencv/opencv · GitHubhttps://github.com/opencv/opencv/releases),可根据需要下载对应版本压缩包。

2、cmake安装

 (1)安装编译所需的依赖包:
sudo apt update
sudo apt install build-essential libssl-dev
(2)下载CMake的源代码。访问[CMake官网](https://cmake.org/files/)下载指定版本的源码压缩包。
wget https://cmake.org/files/v3.20/cmake-3.20.0.tar.gz
(3)解压源代码包,并进入解压后的目录
tar -zxvf cmake-3.20.0.tar.gz
cd cmake-3.20.0
(4)编译和安装:
./configure
make
sudo make install
(5)验证安装
cmake --version

2 、依赖安装

sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev libopenexr-dev libtbb-dev

3、解压编译

unzip opencv-4.1.0.zip
cd opencv-4.1.0
mkdir build
cd build/
cmake -BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON ..;
cd UILD_TYPE\=Release/
make install

4、安装结果验证

        (1)查看版本号

pkg-config --modversion opencv4

        (2)lib库

        安装完成后,opencv lib库路径默认为

/usr/local/lib

   

        (3)包含目录include

        默认为:

/usr/local/include/opencv4

5、CMakeLists.txt配置

include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/include
    /usr/local/include
    /usr/include/
    /usr/local/include/opencv4
)
 
# OPENCV
set(
  OPENCV_LIB_DIRS
  /usr/local/lib
)
file(GLOB OPENCV_LIB_FILES ${OPENCV_LIB_DIRS}/libopencv*)
message("OPENCV_LIB_FILES ${OPENCV_LIB_FILES}")
target_link_libraries(${PROJECT_NAME} PRIVATE ${OPENCV_LIB_FILES})

6、c_cpp_properties.json配置

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/local/include/opencv4"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

7、C++示例程序

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;

int main(int argc, char* argv[]) {
    const char* imagename = "/root/project/helloworld/xxx.png";//此处为的图片路径
    //从文件中读入图像
    cv::Mat img = cv::imread(imagename, 1);
    //如果读入图像失败
    if (img.empty()) {
        fprintf(stderr, "Can not load image %s\n", imagename);
        return -1;
    }
    // cv::imshow("image", img); //显示图像
    // cv::waitKey();
     // 获取图像尺寸信息
    int imageWidth = img.cols;
    int imageHeight = img.rows;
    
    // 输出图像尺寸信息
    printf("Image width: %d\n", imageWidth);
    printf("Image height: %d\n", imageHeight);
    return 0;
}

8、opencv contrib

        诸如SIFT特征匹配算法需要安装opencv contrib,否则可能会报错“fatal error: opencv2/xfeatures2d.hpp: No such file or directory”。

fatal error: opencv2/xfeatures2d.hpp: No such file or directory

        opencv contrib各个版本下载地址为Tags · opencv/opencv_contrib · GitHubhttps://github.com/opencv/opencv_contrib/tags),编译安装方式如下所示。4.1.0版本下载地址为https://github.com/opencv/opencv_contrib/releases/tag/4.1.0。cmake参数中需要加入“ -D OPENCV_ENABLE_NONFREE”,否则会报错“sift.cpp:1207: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'”。编译之前需要重新创建build文件夹后再进行编译,否则问题仍然可能存在。

# 最好将上面opencv编译的build文件夹删除,重新创建
# 这里编译仍然是在上面opencv文件夹下进行的,而不是在opencv contrib文件夹下
# 实际上仍然是编译opencv,只是通过OPENCV_EXTRA_MODULES_PATH将opencv contrib中的内容关联过来
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.1.0.zip
unzip 4.1.0.zip #假设解压后目录为/root/opencv_contrib-4.1.0
rm -r build
cd <上文opencv解压文件夹>
mkdir build
cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_ENABLE_NONFREE:BOOL=ON -D OPENCV_EXTRA_MODULES_PATH=/root/opencv_contrib-4.1.0/modules/ ..
sudo make -j8
sudo make install
sudo ldconfig

9、参考文献

[1] https://zhuanlan.zhihu.com/p/363035298?utm_id=0

[2] https://blog.csdn.net/AcetylcholineACh/article/details/129826710

[3] https://blog.csdn.net/AcetylcholineACh/article/details/129826710

更多python技巧、三维算法、算法总结、大模型请关注我的博客:https://blog.csdn.net/suiyingy,或”乐乐感知学堂“公众号。Python三维领域专业书籍推荐:《人工智能点云处理及深度学习算法》。

【版权声明】
本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。  

更多python与C++技巧、三维算法、深度学习算法总结、大模型请关注我的博客,欢迎讨论与交流:https://blog.csdn.net/suiyingy,或”乐乐感知学堂“公众号。Python三维领域专业书籍推荐:《人工智能点云处理及深度学习算法》。

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Ubuntu配置OpenCV DNN,您需要按照以下步骤进行操作: 1. 首先,您需要查询OpenCV的版本。您可以使用以下命令获取OpenCV的版本信息: ``` pkg-config --modversion opencv ``` 如果您使用的是OpenCV 4,请使用以下命令获取版本信息: ``` pkg-config --modversion opencv4 ``` 2. 接下来,您需要下载OpenCV的源代码和OpenCV Contrib模块。您可以从官方网站下载这些文件。 - Opencv源码下载地址: - Opencv_contrib模块下载地址: 3. 下载完成后,您需要将opencv_contrib解压缩并将其文件夹放到opencv文件目录下。您可以使用以下命令完成此操作: ``` mv opencv_contrib-4.4.0 opencv-4.4.0/ ``` 4. 在安装前,您需要创建一个新的安装目录。您可以使用以下命令完成此操作: ``` cd opencv-4.4.0 mkdir -p build/installed cd build ``` 5. 现在,您需要配置CMake。以下是一个示例CMake配置命令,您可以根据自己的环境进行调整: ``` cmake -BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/home/ssj/software/opencv-4.4.0/build/installed \ -DOPENCV_EXTRA_MODULES_PATH=/home/ssj/software/opencv-4.4.0/opencv_contrib-4.4.0/modules \ -DOPENCV_DNN_CUDA=True \ -DWITH_CUDA=True \ -DCUDA_ARCH_BIN=7.0 \ -DBUILD_TESTS=False \ -DOPENCV_GENERATE_PKGCONFIG=ON .. ``` 在这个配置命令中,您需要注意以下几点: - 您需要根据自己的安装目录和opencv_contrib路径进行相应的调整。 - 如果您想使用CUDA加速,确保将`OPENCV_DNN_CUDA`设置为`True`。 - 使用`CUDA_ARCH_BIN`参数设置您GPU的计算能力。 6. 配置完成后,您可以使用以下命令编译OpenCV: ``` make -j8 ``` 这将使用8个线程并行编译OpenCV。 7. 编译完成后,您可以使用以下命令安装OpenCV: ``` sudo make install ``` 8. 最后,您可以通过验证OpenCV是否成功安装来确认配置是否成功。您可以运行一个简单的程序来验证OpenCV DNN是否正常工作。 ``` #include <opencv2/opencv.hpp> #include <opencv2/dnn.hpp> int main() { cv::dnn::Net net; // 在这里添加您的验证代码 return 0; } ``` 如果程序能够成功编译和运行,那么您已经成功配置OpenCV DNN。 希望这些步骤能够帮助您在Ubuntu上成功配置OpenCV DNN。如果您有任何问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding的叶子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值