一、学习OPENCV前期储备知识
1、需要一定的编程能力,C/C++,好像现在还开放了python等接口。
2、需要一定的计算机视觉、数字图像处理理论知识。
二、OPENCV的编程基本流程包括编辑、编译和连接三大步骤。下面是流程图。
1、编辑(Edit)就是编写代码,可以用记事本、Notepad++各类编辑器来编写,当然不推荐用记事本编写,因为功能过于简单。
2、编译(compile)将某种语言转换成目标文件。目标文件包含机器代码和代码在运行时使用的数据。编译器也有很多,比如windows下的cl.exe。
3、连接(link)是将多个目标文件,以及库文件生产可执行的文件。常用连接器有Windows下的link.exe。
4、运行(Run)即双击就可以运行,将程序载入CPU。
5、以上几个步骤只是一个编程的流程,在处理很多个源文件时一般都使用集成开发环境比如Visual C++等。
6、解释头文件
7、解释库文件
库文件中包含一系列的子程序。例如在上一点中,foo.cpp源文件中 实现了foo()函数,我们假设foo()函数是包含重要算法的函数,我们需要将foo()函数提供给客户使用,但是不希望客户看到算法源代码。为了达到这一目的,我们可以将foo.cpp编译程库文件,库文件是二进制的,在库文件中是看不到原始的源代码的。 库和可执行文件的区别是,库不是独立程序,他们是向其他程序提供服务的代码。
三、OPENCV是什么?
OpenCV其实就是一堆C和C++语言的源代码文件,这些源代码文件中实现了许多常用的计算机视觉算法。例如C接口函数cvCanny()实现了Canny边缘提 取算法。可以直接将这些源代码添加到我们自己的软件项目中,而不需要自己再 去写代码实现Canny算法,也就是不需要重复“造轮子”。
四、图像的基本操作
1、一副尺寸为M*N的图像可以用一个M*N的矩阵来表示,矩阵元素的值表示这个位置上的像素的亮度。
2、一般来说,灰度图用2维矩阵表示,彩色(多通道)图像用3维矩阵(M × N×3)表示。对于图像显示来说,目前大部分设备都是用无符号8位整 数(类型为CV_8U) 表示像素亮度。
3、灰度图像的存储示意图(一般存储顺序以图像最左上点开始,也可能是最左下点)
4、RGB图像存储示意图(RGB图像的通道顺序为BGR)
下一个笔记开始介绍OPENCV的基本函数。
文中内容来自于仕琪教授的《OPENCV入门教程》,本文只是整理学习。