首先确保配置好OpenCV环境,包含头文件#include 并使用命名空间cv;通过imread读取图像,检查是否为空;用imshow显示图像,waitKey等待输入;可使用cvtColor转灰度、GaussianBlur模糊、Canny检测边缘等处理图像;最后用imwrite保存结果;编译时需链接OpenCV库,如g++ main.cpp -o main pkg-config --cflags --libs opencv4。
在C++中使用OpenCV读取和处理图像是
计算机
视觉开发的基础操作。要实现这些功能,需要正确配置OpenCV环境,并掌握核心API的使用方法。
包含头文件并链接库
开始前确保已安装并配置好OpenCV开发环境。在代码中引入必要的头文件:
#include
使用命名空间简化代码:
using namespace cv;
编译时需链接OpenCV库,例如用g++命令:
立即学习
“
C++免费学习笔记(深入)
”;
g++ main.cpp -o main `pkg-config --cflags --libs opencv4`
读取图像
使用
imread()
函数加载图像文件:
第一个参数是图像路径
第二个参数指定读取方式,如
IMREAD_COLOR
(彩色)、
IMREAD_GRAYSCALE
(灰度)
示例代码:
C函数速查手册(CHM版)
C函数速查手册(CHM版)
下载
显示与保存图像
使用
imshow()
显示图像,第一个参数为窗口名称:
处理完成后可用
imwrite()
保存结果:
基本图像处理操作
OpenCV提供了多种图像处理函数,常见操作包括:
转为灰度图:
cvtColor(img, grayImg, COLOR_BGR2GRAY);
高斯模糊:
GaussianBlur(img, blurredImg, Size(5,5), 0);
边缘检测:
Canny(img,edges, 50, 150);
这些处理可串联使用,例如先去噪再检测边缘。
基本上就这些。只要掌握imread、imshow、imwrite和常用处理函数,就能完成大多数基础图像操作。注意检查图像是否成功加载,避免空指针异常。配置好环境后,实际
编码
并不复杂但容易忽略细节。
Mat img = imread("image.jpg", IMREAD_COLOR);
if (img.empty()) {
std::cout << "无法读取图像" << std::endl;
return -1;
}imshow("原图", img);
waitKey(0); // 等待按键,0表示任意键关闭imwrite("output.jpg", img);