C++中的图像处理与变换总结

发布时间 2023-12-14 13:00:16作者: yuan_f

个人总结

图像加法去噪是对同一场景的多幅图像求平均值,以降低加性随机噪声。随机噪声在不同的图像中是独立的,而场景信息是相同的。因此,通过将多幅图像相加并求平均,可以使场景信息保持不变,而噪声的影响则会减小。这是因为随机噪声的期望值为零,所以多幅图像的平均值会使噪声趋向于零。如下图:

在变换编码中,一个可逆的DCT为

首先先将输入图像转换为灰度图,若图像无法被完整地8 * 8分块,则进行边缘复制填充,使其能够完整地8 * 8分块。
将图像细分为不重叠的多个8 * 8像素块。随后按从左到右、从上到下的顺序处理这些像素块。处理完8 * 8块后,其64个像素都通过减去2m-1做灰度级移动,其中2m是图像中的灰度级数,并且计算其DCT变换。然后,得到的系数根据侠士同时去归一化并量化。
式中T是去归一化并量化后的系数,是图像的8*8块的DCT,是变换后的归一化数组。通过标定,可以得到各种压缩比和重建的图像质量。
DCT变换后,构造mask掩码矩阵,将其左上角赋值为1,其余部分赋值为0,然后将掩码矩阵与图像上每个块做点乘,达到舍弃高频系数的作用。接着就只需要将进行掩码操作后的矩阵进行复原,即DCT逆变换。操作后得到压缩后的图像。
由于此前进行了边缘复制填充,因此需要将其边缘填充部分像素舍弃,恢复原图像大小。