福州大学计算机视觉实践:二维小波变换与图像重构

需积分: 9 4 下载量 95 浏览量 更新于2024-08-13 收藏 188KB PDF 举报
"这篇资料是关于2021年福州大学计算机视觉课程的一份作业,主要涉及计算机视觉中的二维快速小波变换以及图像重构。学生需要对一张福州大学校园图像进行处理,首先将其转化为灰度图像,然后进行二维小波变换至二级尺度,并展示变换结果。之后,利用得到的小波系数重构原始图像。代码示例中使用了Python的OpenCV、PyWavelets和Matplotlib等库来实现这些操作。" 在计算机视觉领域,小波变换是一种强大的工具,它能对图像进行多尺度分析,从而提取不同空间频率的特征。在这个作业中,首先通过`cv2.imread`读取图像,然后使用`cv2.resize`进行尺寸调整,确保图像大小适合后续处理。接着,`cv2.cvtColor`被用来将图像转换为灰度模式,这样可以简化图像并降低计算复杂性。灰度图像的数据类型转换为`np.float32`是为了便于进行小波变换。 二维小波变换`pywt.wavedec2`是使用'haar'小波函数进行的,这是一种简单且常用的小波基。参数`level=2`表示分解到第二级尺度。变换的结果是一组系数,包括低频部分`cA2`以及水平、垂直和对角线方向的高频部分`cH2`, `cV2`, `cD2`。为了可视化,这些系数被重新组合并归一化,以创建一个新的图像。 实验结果展示了源图像(原灰度图像)与经过小波变换后的图像。这可以通过`matplotlib.pyplot.imshow`显示,并使用`plt.subplot`来排列两个图像。`plt.xticks([])`和`plt.yticks([])`用于去除坐标轴标签,保持图像清晰。 在第二部分,任务是利用小波变换的系数重构原始图像。这里,可以调用`pywt.waverec2`来完成这个过程,它将小波系数逆变换回图像数据。重构图像通常会与原始图像非常接近,但可能略有差异,因为小波变换在处理边界条件时可能会引入一些失真。 值得注意的是,代码示例中还引入了`skimage`库,虽然这部分代码没有显示出来,但在实际重构过程中,可能会用到`skimage`中的函数,例如`filters`或`data`模块,来辅助完成图像处理。 这个作业涵盖了计算机视觉中的基本图像处理技术,包括图像转换、小波变换和图像重构,这些都是理解和分析图像特征的关键步骤,在图像压缩、去噪、边缘检测等领域有广泛应用。