首页 游戏 软件 资讯 排行榜 专题
首页
编程语言
CentOS下C++如何使用OpenCV库

CentOS下C++如何使用OpenCV库

热心网友
45
转载
2026-05-05

在CentOS系统下使用C++和OpenCV库

CentOS下C++如何使用OpenCV库

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

你是否正在寻找在CentOS操作系统上配置C++与OpenCV开发环境的完整教程?本文将提供一份详尽的指南,涵盖从安装、环境配置到编译运行的完整流程,帮助你高效搭建计算机视觉开发平台,并解决常见的配置难题。

1. 安装OpenCV

成功在CentOS上使用OpenCV进行C++开发的第一步是正确安装库文件。开发者通常有两种主要方案:通过系统包管理器安装预编译版本(快速便捷),或从源代码手动编译安装(高度可定制)。对于大多数开发者和项目需求,我们首先推荐使用包管理器进行安装。

使用包管理器安装(推荐)

以下命令序列将为你构建一个完整的开发环境,包括必要的编译工具、依赖库以及OpenCV核心功能。请在终端中依次执行:

sudo yum update -y
sudo yum install -y epel-release
sudo yum install -y cmake3 gcc gcc-c++ make
sudo yum install -y python3 python3-devel
sudo yum install -y gtk2-devel
sudo yum install -y libpng-devel libjpeg-turbo-devel libtiff-devel
sudo yum install -y ffmpeg-devel gstreamer-plugins-base-devel

# 下载OpenCV源码
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.3.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.3.zip

# 解压
unzip opencv.zip
unzip opencv_contrib.zip

# 创建构建目录
mkdir -p opencv-4.5.3/build && cd opencv-4.5.3/build

# 配置CMake
cmake3 -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.3/modules \
-D BUILD_EXAMPLES=ON ..

# 编译并安装
make -j$(nproc)
sudo make install

使用源码编译安装

如果你需要获取OpenCV的最新特性、特定版本或启用额外的贡献模块,从源代码编译是更理想的选择。这种方法允许你完全控制编译选项和模块的启用状态,以满足高级或特定的开发需求。

2. 配置环境变量

安装完成后,必须配置系统的动态链接库路径,以便编译器和运行时能够定位OpenCV的头文件与库文件。这个过程是确保后续C++项目能够成功链接和运行的关键步骤。

echo "/usr/local/include" | sudo tee -a /etc/ld.so.conf.d/opencv.conf
echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/opencv.conf
sudo ldconfig

执行上述命令会将OpenCV的安装路径永久添加到系统配置中,并通过`ldconfig`命令使配置立即生效,避免出现“库未找到”的错误。

3. 编写C++代码

环境配置妥当后,可以通过一个简单的C++测试程序来验证OpenCV是否工作正常。以下是一个基础的图像读取与显示示例,堪称OpenCV版的“Hello World”。

#include 
#include 

int main() {
    cv::Mat image = cv::imread("path_to_image.jpg");
    if (image.empty()) {
        std::cout << "Could not open or find the image" << std::endl;
        return -1;
    }
    cv::imshow("Display window", image);
    cv::waitKey(0);
    return 0;
}

请务必将示例代码中的 “path_to_image.jpg” 替换为你系统中一张真实图片的绝对或相对路径。

4. 编译C++代码

编写好C++源文件后,需要使用GCC/G++编译器将其编译为可执行文件。最有效的方式是借助`pkg-config`工具自动获取正确的编译和链接标志。

g++ -o test_opencv test_opencv.cpp `pkg-config --cflags --libs opencv4`

这条命令利用pkg-config查询OpenCV4的配置,自动附加所有必要的头文件路径(--cflags)和库文件(--libs),简化了复杂的命令行参数输入。

5. 运行程序

最后,在终端中运行生成的可执行文件,检验整个开发环境是否搭建成功。

./test_opencv

运行前请确认程序中指定的图片路径有效且文件可访问。如果配置一切正确,屏幕上将弹出一个显示指定图像的图形窗口,这标志着你在CentOS上的C++ OpenCV开发环境已成功就绪。

遵循本教程的步骤,你可以在CentOS Linux系统上稳健地建立C++与OpenCV的集成开发环境。如果在任何环节遇到问题,建议仔细阅读终端输出的错误信息,这通常是诊断和解决配置问题的首要依据。

来源:https://www.yisu.com/ask/57059972.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

CentOS中Node.js错误如何调试
编程语言
CentOS中Node.js错误如何调试

在CentOS系统中调试Node js错误,可以采用以下方法 遇到Node js应用报错,别急着重启服务。先稳住,系统性地排查,往往能更快定位问题根源。下面这几种方法,从基础到进阶,总有一款适合你。 1 查看日志文件 这是最直接的第一步。Node js应用运行时,错误信息通常会实时输出到控制台。所

热心网友
05.05
CentOS如何配置Python自动化任务
编程语言
CentOS如何配置Python自动化任务

在CentOS上配置Python自动化任务 你是否需要在CentOS服务器上部署一个稳定、高效的Python自动化任务?无论是数据同步、日志清理还是系统监控,通过Python脚本结合Linux定时任务都能轻松实现。本文将为你提供一份从环境准备到任务部署的完整CentOS Python自动化配置指南,

热心网友
05.05
CentOS如何配置Python依赖管理
编程语言
CentOS如何配置Python依赖管理

在CentOS系统中高效管理Python依赖,构建一个独立、清晰的环境至关重要。这不仅能够有效防止不同项目间的包版本冲突,还能显著简化部署流程与团队协作。本文将详细介绍一套基于pip与virtualenv的标准化操作流程,这是在Linux服务器上进行Python项目依赖管理的成熟方案。 1 安装P

热心网友
05.05
Python在CentOS怎样配置错误处理
编程语言
Python在CentOS怎样配置错误处理

在CentOS上配置Python错误处理:构建稳定应用的完整指南 在CentOS服务器环境中部署Python应用程序时,建立一套完善的错误处理机制至关重要。这不仅是系统稳定运行的“安全网”,更是快速定位和解决问题的“导航仪”。合理的错误配置能够将故障排查时间缩短数倍,避免小问题演变为服务中断。 本文

热心网友
05.05
CentOS如何配置Python内存限制
编程语言
CentOS如何配置Python内存限制

在CentOS系统中为Python应用配置内存限制 在CentOS服务器上运行Python应用时,有效管理内存使用是保障系统稳定性和应用性能的关键。通常需要从操作系统和应用程序两个层面协同配置,才能从根本上预防内存溢出(OOM)问题,实现资源的精细化管控。 操作系统级别的内存限制 首先,从系统层面入

热心网友
05.05

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

Go 中错误处理的惯用法:如何写出简洁、健壮且符合 Go 风格的错误处理代码
编程语言
Go 中错误处理的惯用法:如何写出简洁、健壮且符合 Go 风格的错误处理代码

Go 语言错误处理最佳实践:编写简洁、健壮且符合 Go 风格的代码指南 Go 语言采用多返回值(值 + error)实现显式错误处理,其标准做法是在每次函数调用后立即检查 err 是否为 nil;虽然忽略错误在语法上可行,但这违背了 Go 的设计哲学,极易导致隐蔽的 panic 或难以追踪的逻辑错误

热心网友
05.06
Python编写Flask接口如何限制请求频率_使用Flask-Limiter防止接口滥用
编程语言
Python编写Flask接口如何限制请求频率_使用Flask-Limiter防止接口滥用

Python Flask接口请求频率限制实战:Flask-Limiter防刷指南 Flask-Limiter 初始化配置详解:避免应用上下文错误 应用上下文配置不当,是开发者初次集成 Flask-Limiter 时最常见的错误。核心症结在于,限流器必须在 Flask 应用实例完全初始化且应用上下文就

热心网友
05.06
2026年涨100倍的币会是哪些?可能有哪些
web3.0
2026年涨100倍的币会是哪些?可能有哪些

2026年可能涨100倍的币会是哪些? 市场总是在寻找下一个爆发点。如果说2026年的加密货币市场存在百倍增长的可能,那么机会大概率会落在那些手握硬核技术、生态正在快速扩张、并能精准切入新兴应用场景的项目上。纵观行业趋势与数据,有五个名字反复被提及:Sui、Filecoin、Cosmos、Kaspa

热心网友
05.06
Python程序PyTorch显存泄漏怎么办_利用torch.cuda.empty_cache清理
编程语言
Python程序PyTorch显存泄漏怎么办_利用torch.cuda.empty_cache清理

torch cuda empty_cache() 仅释放未被张量引用的缓存显存,不回收仍被变量或模型持有的显存;需配合 del、zero_grad() 和 no_grad() 才能有效释放。 为什么 torch cuda empty_cache() 经常不起作用? 简单来说,这个函数的作用范围非常有

热心网友
05.06
如何在 WooCommerce 中隐藏无缩略图的产品
编程语言
如何在 WooCommerce 中隐藏无缩略图的产品

如何在 WooCommerce 中隐藏无缩略图的产品 本文详细讲解如何通过自定义代码过滤 WooCommerce 商品查询,自动排除未设置特色图像(产品主图)的商品,确保店铺前台仅展示带有有效产品图片的商品条目,提升页面美观度与专业感。 你是否希望自己的 WooCommerce 在线商店前台只呈现那

热心网友
05.06