写点什么

OpenCV 学习(三):三重境界

用户头像
轻口味
关注
发布于: 刚刚

王国维在《人间词话》中说:古今之成大事业、大学问者,必经过三种之境界: “昨夜西风凋碧树,独上高楼,望尽天涯路。” 此第一境也。 “ 衣带渐宽终不悔,为伊消得人憔悴。” 此第二境也。 “ 众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。”此第三境也。今天我们把 OpenCV 也分三种境界介绍下。

人工智能在各个领域的落地也带火了对计算机视觉的人才需求,而 OpenCV 作为计算机视觉应用的主流开发框架,是入门计算机视觉的必备工具。随着市场需求大增,很多人听说了之后就迫不及待的想加入这波大军。这其中不乏拥有丰富的开发编程经验,但是计算机视觉没有了解过,真正的零基础,而图形图像学较其他领域有一定的门槛。现在 IT 领域的浮躁心态,对知识的学习都有很强的功利性,一般都是我要识别个什么,而且还有时间限制,一般都是一个月左右时间,学了几个 API 之后看到了点效果就觉得 OpenCV 也没什么嘛,感觉跟我搞应用开发一样啊,很快上手啦。但是随着场景的落地,对效率和质量的要求随之变高,才开始暴露各种各样的问题,才发现还有这么多东西要学,才发现这么多算法没听说过,甚至有些连自己调用的算法 API 那些参数是什么意思也“不求甚解”,才发现做计算机视觉好难,其实还是学习 OpenCV 的方式或者心态不对。

正确的需求方式应该像王国维大师介绍的三种境界一样,分三步:首先学习基础,第二个阶段是提升、第三个阶段是应用。正所谓“千里之行,始于足下”,而很多初学者一般都看重的是第三部分,但是只有走好学习 OpenCV 的第一步我们才能走好剩下的 999 步。否则就会出现“欲速则不达”的尴尬局面,貌似懂,一做应用什么都不行,调用哪个 OpenCV 算法函数都无法解决问题的进退维谷之中。

## 1.第一重境界:搞懂基础

了解一些常见概念:

1. 图像常见的格式有:

1. jpg

2. tiff

3. png

4. wep

2. 常见的图像通道数可能是:

1. 单通道

2. 双通道

3. 三通道

4. 四通道

3. 数字图像中最小数据单元是什么

1. 像素

2. 亚像素

3. 超像素

4. 颜色

4. 常说的图像滤波是什么数学原理

1. 傅立叶变换

2. 离散余弦变换

3. 卷积

4. 距离变换

5. 常见的图像插值算法有

1. 最近邻

2. 双立方

3. lanczos 插值

4. 双线性

6. 常见的 RGB 图像每个像素点颜色值范围

1. 0~1 B.

2. 0~256

3. 0~255

4. 0~180

7. 关于 RGB 色彩的描述:

1. RGB(255,255,255)表示黑色

2. RGB(0,0,255)表示蓝色

3. RGB(255,0,0)表示红色

4. RGB(0,0,0)表示白色

8. 常见的图像色彩空间有:

1. HSL

2. HSV

3. RGB

4. YCrCb

9. 常见的图形绘制时候像素渲染方法有

1. 四邻域渲染

2. 八邻域渲染

3. 透明通道混合反锯齿渲染

4. 游戏渲染

## 2.第二重境界:进阶蜕变

要成为 OpenCV 开发高手,要做到内外兼修,这里内是指相关数学、算法论文;外是指要加强动手能力,编程能力,工程能力。做为 OpenCV 开发者我们首要职责就是负责让视觉相关应用落地,没有很强悍的工程能力与解决问题能力很难做到这点。在学习 OpenCV 编程时可以多从以下几点考虑?

1. 学习 API 函数时查找相关论文,尝试阅读论文

2. 搞清楚学到的每个算法相关数学基础,尝试理解相关参数意义

3. 学会看 OpenCV 官方的文档与代码示例

4. 古语云“独学而无友,则孤陋而寡闻”,所以多认识一些 OpenCV 学习者与开发者

## 第三重境界:应用落地,微创新

如果你成功了经历了前面两个阶段,应该恭喜你是一个真正的 OpenCV 开发者了,但是这个时候还有清醒的意识到你只是一个知道和熟悉常见 OpenCV 中算法、使用它们解决实际问题的开发者而已,要学会关注业界动态,关注 OpenCV 框架的新发展与新动向、特别是新算法在 OpenCV 框架中的实现与 SDK 发布。

用户头像

轻口味

关注

🏆2021年InfoQ写作平台-签约作者 🏆 2017.10.17 加入

Android音视频、AI相关领域从业者,开源RTMP播放器:https://github.com/qingkouwei/oarplayer

评论

发布
暂无评论
OpenCV学习(三):三重境界