上海交大的数字图像习题课,方向忠老师主讲,内容挺硬核,但讲得清楚。重点是用 MATLAB 做图像,像图像读取、滤波、压缩这些都讲了。dct2dctmtx两种 DCT 方法讲得蛮细,还带你搞懂怎么分块、变换、再拼回来。如果你用 MATLAB 做图像压缩,挺推荐看一看。

MATLAB 的图像工具箱是真的方便,直接用dct2可以整张图,效率高;要更灵活点就用dctmtx生成变换矩阵,适合 8x8、16x16 的小块。像做 JPEG 压缩的流程:先分块,再变换、量化、编码,还原图像,在课上都能看到完整演示。

OpenCV也有提到,性能比 MATLAB 强,适合做大图像数据集,但代码偏复杂。初学者的话,还是 MATLAB 更好上手。不过如果你是搞计算机视觉,比如目标检测、人脸识别这些,OpenCV 那一套也得学一学。

顺便说下,想看源码的可以去这两个链接,一个是 Matlab 数字图像,另一个是 matlab 直方图优化源码,挺实用的。

如果你是学生或者图像新手,想搞明白 DCT 怎么压缩图像、怎么用 MATLAB 高效图像,真建议你把这门课好好看看,干货多,代码也还算好懂。