1. 头文件含义
常见头文件
#include<opencv2/core/core.hpp> #include<opencv2/imgcodecs.hpp> #include<opencv2/highgui.hpp> #include<opencv2/imgproc.hpp> #include<iostream>
含义:[core ] 核心功能块
主要包含了 OpenCV基本数据结构、动态数据结构,绘图函数,数组操作相关函数,辅助功能与系统函数和宏。
[highgui]高层GUI图像交互模块
主要包括了图形交互界面,媒体I/O的输入输出,视频信息的捕捉和提取,图像视频编解码等。
[imgproc]图像处理模块
主要包含了图像的变换,滤波直方图相关结构分析,形状描述。
[iostream] 输入 输出流头文件
主要包含了在C++编码过程中的cin的输入内容和cout输出内容。
2.图像处理基本操作
//三通道转换为单通道图像
//获取单通道图像每个像素点
//像素灰度值改变
namedWindow("input images ", CV_WINDOW_AUTOSIZE);
imshow("input images", image);
//读取灰度值
cvtColor(image, gray_img, CV_BGR2GRAY);
namedWindow("gray", CV_WINDOW_AUTOSIZE);
imshow("gray", gray_img);
//修改单通道颜色值
int height = gray_img.rows;
int width = gray_img.cols;
for (int row = 0; row < height; row++)
{
for (int col = 0; col < width; col++)
{
int gray = gray_img.at<uchar>(row, col);
gray_img.at<uchar>(row, col) = 255 - gray;
}
}
namedWindow("img2", CV_WINDOW_AUTOSIZE);
imshow("img2", gray_img);
实验结果如下: