Opencv的Gamma转换与二值化处理
1. 头文件和命名空间
1 |
|
通俗理解:就像在游戏开始前要导入各种工具包,这些#include就是告诉编译器我们需要用到哪些工具。
2. Gamma变换函数详解
1 | // Gamma变换函数 - 就像调整手机屏幕的亮度曲线 |
Gamma变换原理:
gamma < 1:增强暗部细节(让暗的地方变亮)gamma > 1:增强亮部细节(让亮的地方更突出)gamma = 1:不做任何改变
3. 二值化函数详解
1 | // 自适应二值化处理 - 把图片变成黑白两色 |
4. 主函数详细解析
1 | int main() { |
核心概念解释
1. Mat 是什么?
Mat 是OpenCV的图片容器类,可以理解为:
- 一个智能的图片数据盒子
- 自动管理内存,不用手动分配和释放
- 存储像素数据、尺寸、颜色通道等信息
2. 关键函数的作用:
imread():读取图片文件imshow():显示图片imwrite():保存图片cvtColor():颜色空间转换namedWindow():创建显示窗口waitKey():等待用户输入
3. 处理流程总结:
- 读图 → 2. Gamma增强 → 3. 转灰度 → 4. 二值化 → 5. 去噪 → 6. 显示保存
完整可运行代码
把以下代码保存为 main.cpp:
1 |
|
这样解释后,你应该能理解每一行代码的作用了!这个程序的核心思想就是:先调整亮度让数字更明显,然后转换成黑白图让数字突出显示。