首先安装配置opencv环境,然后使用cv::imread读取图像,通过cvtColor、resize、Canny等函数进行灰度化、缩放和边缘检测处理,并用imwrite保存结果。

在c++中使用OpenCV读取和处理图像是计算机视觉开发的基础技能。OpenCV(Open Source Computer Vision Library)是一个功能强大的开源库,支持多种图像和视频处理操作。下面是一个简洁实用的入门教程,帮助你快速上手用C++读取和处理图像。
1. 安装OpenCV并配置环境
要使用OpenCV,首先需要安装并配置好开发环境:
- 下载OpenCV源码或预编译库,推荐从官网获取。
- 在windows上可使用visual studio配合CMake编译OpenCV,或直接使用vcpkg安装:
vcpkg install opencv4 - 在linux或macOS上可通过包管理器安装,例如ubuntu执行:
sudo apt-get install libopencv-dev - 配置项目链接OpenCV库,并包含头文件路径。
2. 读取图像
使用cv::imread()函数可以轻松读取图像文件。支持常见格式如JPEG、PNG、BMP等。
示例代码:
立即学习“C++免费学习笔记(深入)”;
#include <opencv2/opencv.hpp> #include <iostream> int main() { // 读取图像 cv::Mat image = cv::imread("example.jpg"); // 检查图像是否加载成功 if (image.empty()) { std::cout << "无法加载图像,请检查路径!" << std::endl; return -1; } // 显示图像 cv::imshow("原图", image); cv::waitKey(0); // 等待按键 cv::destroyAllwindows(); return 0; }
3. 常见图像处理操作
加载图像后,可以进行多种基本处理:
灰度化:将彩色图像转为灰度图
cv::Mat gray; cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY); cv::imshow("灰度图", gray);
调整大小:改变图像尺寸
cv::Mat resized; cv::resize(image, resized, cv::Size(), 0.5, 0.5); // 缩小一半 cv::imshow("缩放图", resized);
边缘检测:使用Canny算法检测边缘
cv::Mat edges; cv::Canny(gray, edges, 50, 150); cv::imshow("边缘图", edges);
保存图像:将处理后的图像写入文件
cv::imwrite("output_edges.jpg", edges); std::cout << "图像已保存为 output_edges.jpg" << std::endl;
4. 编译与运行
在Linux或macOS下,使用g++编译并链接OpenCV:
g++ main.cpp -o main `pkg-config –cflags –libs opencv4`
确保系统已正确安装OpenCV并配置了pkg-config。
运行程序:
./main
基本上就这些。掌握读取、显示、转换和保存图像的操作后,你可以进一步学习图像滤波、轮廓检测、人脸识等高级功能。OpenCV文档丰富,社区活跃,是学习图像处理的理想起点。


