根据我自己的需求,按照功能划分,可将各类opencv的接口函数分为以下几类:
1. 图片/视频的 读、写、显示操作
imread()
imwrite()
2. 预处理:灰度化、滤波、二值化
// 色彩空间转换
cvtColor()
// 滤波
// 平滑处理
// 二值化
threshold()
adaptiveThreshold()
// 形态学操作
morphologyEx()
3. 图片中重要信息的提取
// 轮廓检测
findContours() // 检测轮廓
drawContours() // 绘制轮廓
contourArea() // 轮廓面积提取
arcLenth() // 轮廓长度提取
// 边缘检测
// 图像分割
// 连通域分析
Q1. 边缘检测与轮廓检测有什么区别?
- 边缘检测能够增强图像中,像素变化梯度较大的边界,但是没有将相同像素的部分作为一个整体,识别出来的边缘不是闭合的;
- 轮廓检测可以得到闭合的区域,并计算闭合区域的面积、周长等信息。
- 轮廓检测一般只能检测二值图中的轮廓。
- 通常,为了更准确地提取原图信息,先进行边缘检测,再进行轮廓检测。