计算机视觉与OpenGL字体实用指南
1. OpenCV在iPhone上的人脸识别应用局限与拓展
在使用OpenCV于iPhone上进行人脸识别时,会发现应用在识别倾斜人脸方面表现不佳。这是因为Haar对象检测本质上是一种模板匹配算法,它已经在图像的数千个位置尝试匹配不同大小的人脸。若要在三个轴上对人脸旋转进行重复搜索,由于组合爆炸问题,会使算法速度变得极慢。虽然有更新更好的算法,但通常复杂度和内存成本较高。
不过,OpenCV的潜力远不止于此,以下是一些可以进一步探索的有趣项目,难度从简单到极具挑战性:
- 集体照趣味处理 :修改现有的程序,为照片中的人物添加小胡子、帽子和领带,还可以随机变形他们的头部或用名人的脸替换。
- 移动照片编辑工具 :使用OpenCV的图像修复算法修复受损图像或去除人脸的痘痘,然后运用形态学运算符、模糊和分割等方法添加视觉效果。
- 实时现实版乒乓球游戏 :与朋友拿着尺子或扫帚柄玩乒乓球游戏,或在任何环境中反弹虚拟球。可以使用Canny边缘检测和Hough变换来找到图像中的主要线条(即球拍)。为了即使在2G iPhone上也能以每秒几帧的速度运行,可使用iPhone虚拟取景器的帧抓取功能。由于是寻找大的图像特征,内部处理使用非常低分辨率的图像(如320×200)就足够了。
- 使用相机玩棋盘游戏 :例如Sudoku Magic应用,通过依次应用20个不同的图像处理步骤,以视觉方式捕捉、评分和解决数独谜题。跳棋求解器也是一个很好的起点,利用Hough变换找到棋盘边缘,应用透视变换进行