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的集成开发环境。如果在任何环节遇到问题,建议仔细阅读终端输出的错误信息,这通常是诊断和解决配置问题的首要依据。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
C++ std::ranges::any_of用法 _ 快速检查容器元素满足条件【干货】
C++ std::ranges::any_of用法详解 | 高效检查容器元素是否满足条件【实战指南】 概括而言,std::ranges::any_of 是C++20引入的用于快速检测容器或范围中是否存在至少一个满足指定条件的元素的算法。其核心优势在于语义直观、支持现代C++范围概念、具备短路求值特性
C++ set容器去重与排序 _ insert函数与自定义比较器【实战】
C++ set容器去重与排序:insert函数与自定义比较器实战解析 set插入重复元素时,如何准确判断insert是否成功? 判断C++ set插入操作是否成功,关键在于正确解读其返回值。标准库中的set::insert函数会返回一个std::pair类型的结果。其中,second成员是一个布尔标
php怎么用各类ai做播客脚本撰写_音频内容【操作】
PHP调用OpenAI API生成播客脚本需用openai-php SDK,指定gpt-4-turbo等支持对话的模型,system提示词明确输出Markdown及结构化字段;解析时用preg_split配合PREG_SPLIT_DELIM_CAPTURE提取[HOST][GUEST]等标记段落;T
PHP怎么实现Eloquent Has Many Through远层一对多_Laravel间接关联查询【指南】
PHP怎么实现Eloquent Has Many Through远层一对多_Lara vel间接关联查询【指南】 hasManyThrough 返回空数组的最常见原因是字段名未对齐:需严格匹配中间表外键(如 author_id)、远端表外键(如 article_id)及本地主键(如 uuid),否则
c++如何获取Windows下任意文件的唯一文件标识符【技巧】
C++如何获取Windows下任意文件的唯一文件标识符【技巧】 在Windows系统中,稳定且持久地标识一个文件,推荐使用内核级的FILE_ID,它由VolumeSerialNumber(卷序列号)与FileId(文件ID)共同构成。获取它的标准方法是调用GetFileInformationByHa
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

