2。1。1 颜色的三个基本属性
颜色在视觉上可以分为非彩色和彩色这两大类。有色系列或者彩色系列,是指白色以外的 其他各种颜色。饱和度、色调、亮度,这是颜色的 3 个基本属性。
2。1。2 图像深度
图像深度限制了彩色图像中最多颜色数目,同时也决定了灰度图像中最大的灰度等级数。 我们用三维空间表示图像的色彩,如 RGB 空间。因为色彩空间的表示方法有很多种,所以如何 分配像素的图像深度,与图像所在的色彩空间也有很大关系。在我们讨论映象图像的彩色时, 通常定义彩色数的方式是使用保存色彩信息所有的位数。各种位图的图像深度如下表。
表 2。2 各种图像颜色深度
位图 颜色数 图像深度
单色图 2 1 位
灰度图 256 8 位
伪彩色图 256 8 位
24 位真彩色图 1667 万 24 位
2。1。3 灰度图像
与彩色图像相似,不同在于查表后的 R、G、B 三个分量的值是相等的。除了白色和黑 色,还有 254 种深浅的灰色。
2。1。4 黑白图像
黑白图像由 1 位元来表示每一个像素,颜色就只有黑色和白色。好处是占的内存小,方便 计算,但是功能就相对较少。比如黑白图像不能表示渐变色。
2。2 OpenCV 和 QT 简介
OpenCV(Open Source Computer Vision,开源计算机视觉库)是由 Intel 开发的一个提供实 时图像处理的免费跨平台库。OpenCV 实际上已经成为一切计算机视觉相关处理的一个标准库 工具,并且能够在大部分流行操作系统中使用。OpenCV 的应用包括识别与分割、三维和二维 特征工具包、人脸识别、对象识别、图像拼接、手势识别、增强现实、运动追踪、高动态范围 成像[16]。
开发 OpenCV C++应用需要以下几个先决条件:(1)对 OpenCV 头文件和库文件进行编 译。OpenCV 的代码包应该使用与生产用户应用程序相同的编译器来编译。(2)一个 C++编译 器,包括代码编辑器、项目管理器、调试器、修订控制系统、构建过程管理器、类检测器等。 通常这些工具在同一个 IDE 中进行配置。(3)
其他辅助库:有时编写最终应用程序需要任何其他辅助库,例如统计、绘图等。 目前主流的用于编写 OpenCV C++应用的编译工具有以下几种。
(1)Microsoft Visual C++(MSVC):与 IDE Visual Studio 的集成度很高,只在 Windows 环境下提供支持(当然也可以与其他跨平台的 IDE 集成,例如 QT Creator 或者 Eclipse)。与目 前最新的 OpenCV 发布兼容的 MSVC 版本是 VC15。
(2)CNU Compiler Collection GNU GCC:这是由 GNU 项目组开发的一个跨平台的编译系 统,在 Windows 开发环境下就是广为人知的 MinGW。与目前 OpenCV 发布兼容的 GNU GCC 版本为 4。8,该工具包可以与若干 IDE 一起使用,例如 Eclipse、QT Creator、Code::Blocks 等。
QT 是一个跨平台的 C++图形用户界面的应用程序框架,拥有丰富的 API 和大量的开 发文档。以 QT 为基础,QT/Embedded 是面向嵌入式的 QT 版本。QT Creator 首次提供专为跨 平台开发而设计的 IDE,提供了一套高效的工具用于测试和创建基于 QT 的程序,包括源代码 管理、C++代码编辑器、可视化调节器、上下文感知帮助系统、项目管理工具和构建管理工 具。 最新的 QT 软件开发工具包包括了 QT Creator IDE、 QT 库和 QT 工具, 并对 Mac 、 Linux/X11 和 Windo 近 ws 等主流操作系统提供支持。