本次作业是关于西安交通大学计算机视觉与模式识别课程中的一个实践任务,针对计算机53班学生龙思宇(学号2150500103)进行的一项仿射变换图像拼接项目。具体目标是通过编程实现两幅图片的拼接,利用仿射变换技术将它们合并在一起。作业的关键部分是补全`detHarrisCorners`程序,该程序用于计算Harris角点,这是一种检测图像局部特征的方法,尤其适用于检测具有显著方向变化的边缘或兴趣点。
首先,作业要求编写一个矩阵A,它包含了从右图的边界点(如xsRight和ysRight)出发的仿射变换参数。矩阵A的结构定义了平移、缩放以及旋转的系数,其中包含三组数据,每组对应一个图像区域。同时,有一个向量b表示左图的边界点坐标,即待求解的仿射变换参数。
接下来,通过矩阵A和向量b的线性求解,计算出仿射变换的参数x,这将用于调整右图的位置和大小以便与左图对齐。作业还涉及到滤波操作,通过卷积操作分别计算图像在水平和垂直方向上的梯度,这有助于后续的角点检测。Hessian矩阵Ixx、Iyy和Ixy用于计算图像局部特征的二阶导数,这些矩阵经过卷积操作进一步增强特征信息。
`detHarrisCorners`程序的核心部分是对Hessian矩阵的处理,包括计算角点响应值R和角点阈值检测。通过设置合适的Harris算子系数k(通常取0.04到0.06之间),以及计算角点响应值的条件(如`R > corn_thresh * rmax`),筛选出具有显著角点响应的像素位置。最后,`imregionalmax`函数被用来找到全局的最大响应位置,即角点的位置。
完成这个作业后,学生应该能够实现一个自动检测并利用Harris角点进行仿射变换的算法,将两张照片精确地拼接到一起,这对于理解和应用计算机视觉中的图像处理技术至关重要。在实际操作过程中,可能需要对程序进行调试和优化,以确保拼接后的图像质量和准确性。