计算机视觉实验:Fisherfaces与Eigenfaces对比及内容检测

需积分: 5 3 下载量 92 浏览量 更新于2024-08-26 收藏 6.26MB DOC 举报
"本次实验主要涉及计算机视觉领域,实验4主要涵盖了两个任务。第一个任务是在ATT数据集上使用Fisherfaces方法与Eigenfaces方法进行对比。第二个任务是实现图像内容的快速检测,通过矩形框标记目标图像在另一幅图像中的位置。" 实验4详细分析: 1. 任务1 - Fisherfaces与Eigenfaces比较 Fisherfaces是一种人脸识别方法,与Eigenfaces相比,它的主要优势在于关注类别间差异而非样本内的变化。在实验中,通过`FisherFaceRecognizer::create()`创建模型并进行训练。代码中`model->train(images, labels);`用于训练模型,`model->save("model.xml");`则将模型保存以便后续使用。实验结果显示,Fisherfaces方法产生的特征向量使得图像在色彩和光照上的变化更为均匀,这表明它在处理光照和姿态变化时具有更好的鲁棒性。由于Fisherfaces旨在捕捉类别间的特征,因此尝试重建原始图像可能无法达到理想效果。 2. 任务2 - 图像内容检测 这个任务是实现图像匹配和定位,目标是找到`find.jpg`中的内容在`img.jpg`中的位置。使用OpenCV库进行图像处理,首先读取两幅图像并转换为灰度图。核心代码部分包括遍历`src`图像的每个区域,使用`compareHist()`函数计算模板图像`tem`与当前区域`small`之间的相关性,以确定它们的相似程度。如果相似度超过某个阈值,则可以认为找到了目标图像的一部分,并在原始图像上绘制矩形框进行标记。这个过程利用了相关性分析来确定目标图像在大图中的位置,是图像检索和目标检测的基本方法。 实验总结: 通过这两个任务,实验者不仅实践了两种不同的人脸识别技术,还了解了如何在实际场景中应用图像匹配。Fisherfaces在人脸识别中的优越性得到了验证,而图像检测部分展示了如何在图像中快速寻找并标记特定内容。这些技能对于理解和应用计算机视觉算法至关重要,也为进一步的深度学习和图像处理研究打下了基础。