图像处理应用系统开发报告
本文档是对图像处理应用系统的开发报告,主要涉及到图像处理技术的应用,包括图像阈值二值化、边缘检测、轮廓检测、图像滤波、色彩转换、提高对比度、人脸识别和笑脸识别等多方面的技术应用。
一、平台选择
在本实验中,我选择了 Python 作为开发语言,并使用 PyCharm + Anaconda 作为开发平台。Python 的语法简单、容易学习,且可以调用许多第三方库,包括 OpenCV 图像处理库。PyCharm 提供了语法补全、语法高亮等功能,最新版的 PyCharm 也可以一键安装所需的 Python 版本,非常方便。Anaconda 包含了许多开发需要的 Python 科学包,如 numpy 等,并且可以方便的使用 conda 命令。
二、图像处理技术介绍
(1)阈值二值化
阈值二值化是将图像转换为二值图像的过程。首先,图像必须转化为灰度图像,对于 RGB 空间而言,需要将他们取平均,得到的为灰度值,对这个灰度图像设置一个阈值,超过这个阈值的像素点,显示为黑色图像,低于这个阈值的像素点设置为白色,阈值范围在[0,255]。
(2)边缘检测
边缘检测是指检测图像中图像像素值变化明显的位置。这些变化明显的位置常常是图像中需要关注的位置,对这些关键位置的检测,就叫做边缘检测。这里我采用了 canny 算子,即梯度方向的二阶导数过零点,但首先需要使用高斯滤波来降噪,以排除噪点的影响。在获得梯度大小和方向后,将对图像进行全面扫描,以去除可能不构成边缘的所有不需要的像素。
(3)轮廓检测
轮廓检测算法是将所有沿着相同的连续点的曲线设置为相同的颜色,首先把图像去噪处理,然后转化成二值图,对于这个二值化的图像,掏空内部点,绘制轮廓,然后将绘制出的轮廓在原图像上显示即可。
(4)图像滤波
图像滤波是对图像的噪声进行抑制,原理上是采用一个滤波器进行滤波操作,滤波是一个邻域算子,根据周围像素点的值来确定该点像素点的值。这里我实现了两种滤波操作,高斯滤波和均值滤波。
(5)色彩转换
色彩转换是实现了不同色彩空间的转化功能,我选择实现的是 RGB 到 HSV 的颜色空间转化功能,然后通过调控色调和饱和度,再映射回 RGB 空间可以看到色彩转换后的结果。
(6)提高对比度
提高对比度是通过计算得到一个对比度阈值,然后将其进行(8,8)的直方图均衡化操作,然后将这个操作应用到每一帧的图像上,采用的同样是先转化为其他的颜色模型,这里我选择转化为 lab 模型,然后进行对比度增强操作,再转化到 RGB 空间即可。
(7)人脸识别和笑脸识别
人脸识别主要是采用基于 Harr 特征的级联分类器进行实现,级联分类器的函数是通过大量带人脸和不带人脸的图片通过机器学习得到的。人脸识别需要几万个特征,通过机器学习找出人脸分类效果最好、错误率最小的特征。
本实验报告主要介绍了图像处理应用系统的开发过程,涵盖了多种图像处理技术的应用,包括图像阈值二值化、边缘检测、轮廓检测、图像滤波、色彩转换、提高对比度、人脸识别和笑脸识别等。