
数字图像处理完整入门教程分模块一、基础概念什么是数字图像1. 图像数字化原理现实照片是连续模拟信号电脑识别必须转成离散数字矩阵分两步采样把画面切成无数小方块像素分辨率 宽 × 高采样越密图片越清晰、文件越大。量化给每个像素亮度分配数字二值图只有 0 (黑)/1 (白)灰度图0 纯黑255 纯白共 256 级RGB 彩色红、绿、蓝三通道灰度叠加2. 图像 vs 图形图像位图相机实拍、照片最小单位像素放大模糊jpg/png图形矢量图软件绘制图标、CAD靠数学公式存储无限放大清晰svg/dwg3. 色彩模型RGB显示器 / 手机相加混色红光 绿光 蓝光组合所有颜色CMYK打印机相减混色青、品、黄、墨用于纸质印刷LAB人眼视觉亮度 L、红绿轴 A、黄蓝轴调色专用二、图像基础算术 / 逻辑运算点对点单像素计算所有运算都是同位置像素数值计算不改变图片轮廓结构1. 算术运算** 加法C A B降噪多张相同场景图片取平均消除随机噪点特效双重曝光、图片叠加** 减法C A - B去除固定背景、视频运动检测前后帧相减动的区域会发亮** 乘法C A × B蒙版遮罩用黑白掩码黑色区域直接抹掉图像内容颜色混合正片叠底打印油墨效果** 除法C A ÷ B修正拍摄亮度不均、多光谱图像比值分析2. 逻辑运算仅黑白二值图使用AND 与两张图重叠区域保留提取相交物体OR 或合并两张图所有内容XOR 异或两张图不一样的区域显示相同变黑图片和自身异或会清空三、几何变换平移、旋转、缩放、镜像改变像素位置核心知识点正向 / 反向映射正向原图像素映射到新图容易出现空洞反向映射推荐遍历新图每个坐标反推原图对应像素无空洞搭配插值填充空白像素1. 平移公式\(xxt_x,\ yyt_y\) 矩阵齐次坐标 \(\begin{bmatrix}x \\ y \\ 1\end{bmatrix}\begin{bmatrix}1 0 t_x \\ 0 1 t_y \\ 0 0 1\end{bmatrix}\begin{bmatrix}x \\ y \\ 1\end{bmatrix}\) \(t_x\)左右偏移\(t_y\)上下偏移2. 镜像水平镜像左右翻转\(xW-x\) 垂直镜像上下翻转\(yH\)3. 缩放\(xf_x·x,\ yf_y·y\) \(f_x/f_y1\)放大小于 1 缩小缩放后空白像素需要插值填充4. 旋转绕图像中心先把图像原点移到中心旋转矩阵 \(\begin{bmatrix}x \\ y \\ 1\end{bmatrix}\begin{bmatrix}\cos\theta \sin\theta \\ -\sin\theta \cos\theta\end{bmatrix}\begin{bmatrix}x \\ y\end{bmatrix}\)计算旋转后整张图边界自动扩充画布避免裁切插值算法空白像素补值最近邻插值取最近像素速度快但锯齿严重双线性插值周边 4 像素加权画面平滑日常处理首选四、灰度变换点运算只改像素亮度不挪位置1. 线性灰度变换 \(D_B a·D_A b\)\(a1\)提升对比度\(0a1\)降低对比度\(b0\)画面整体变亮\(b0\)变暗\(a-1,b255\)图像反色黑变白白变黑2. 非线性灰度变换自定义曲线拉伸中间灰度提升画面层次感常用公式 \(f(x)x\frac{0.8·x·(255-x)}{255}\)3. 直方图核心工具直方图统计图片里每个灰度值有多少像素特点只记录亮度不记录物体位置物体移动直方图不变一张图对应唯一直方图直方图相同图片不一定一样 用途判断图片明暗、对比度、分割阈值直方图均衡自动增强把拥挤的灰度均匀铺开暗图变通透、对比度大幅提升适合逆光、昏暗照片。直方图规定化自定义目标直方图统一多张图片光影色调滤镜、批量调色五、傅里叶变换空域 ↔ 频域1. 核心概念空域我们看到的像素画面频域描述画面灰度变化快慢低频大片平滑区域天空、墙面频谱中心亮点高频边缘、纹理、噪点频谱外围亮点 变换作用复杂图像运算滤波、降噪转到频域会大幅简化2. 傅里叶变换关键性质可分离二维图可以先行、后列分别做一维变换平移不变幅度图片移动轮廓频谱形状不变只改变相位旋转同步图片转多少度频谱同步转多少卷积定理最重要空域卷积 频域相乘 图像滤波不用滑动卷积核直接频域相乘速度提升几十倍3. FFT 快速傅里叶变换原始 DFT 复杂度 \(O(N^2)\)FFT 拆分奇偶序列优化到 \(O(Nlog_2N)\)电脑处理图片全靠 FFT。 蝶形运算FFT 基础计算单元分层合并高低频分量。六、滤波图像平滑 / 锐化卷积实现卷积原理拿小矩阵卷积核 / 模板在图片逐窗口滑动窗口内像素 × 核权重求和生成新像素。 示例 3×3 均值核模糊降噪 \(\begin{bmatrix}1/9 1/9 1/9 \\ 1/9 1/9 \\ 1/9 1/9 1/9\end{bmatrix}\)1. 空域滤波直接处理像素平滑滤波降噪、模糊均值滤波邻域平均消除细小噪点缺点会糊掉边缘中值滤波取邻域中间亮度完美去除黑白雪花噪点保留边缘锐化滤波强化边缘、细节用拉普拉斯 / 梯度算子放大像素亮度差画面更清晰过度锐化会出现白边过冲。2. 频域滤波傅里叶变换后处理低通滤波保留低频、过滤高频降噪、模糊 类型理想振铃波纹、巴特沃斯、高斯无波纹首选高通滤波保留高频、去掉低频提取边缘 缺陷丢失画面基础亮度图像发黑搭配偏移增益改善带通 / 带阻只保留 / 删除特定频率纹理七、完整图像处理通用流程读取图片转灰度 / RGB预处理几何变换摆正、裁剪灰度校正直方图均衡 / 线性提亮降噪平滑空域均值 / 频域高斯低通特征提取高通滤波提取边缘分割 / 识别基于灰度阈值、边缘划分目标区域配套实操PythonOpenCV 极简示例直接跑1. 图像加减降噪python运行import cv2 import numpy as np # 读取两张同场景图片 img1 cv2.imread(1.jpg) img2 cv2.imread(2.jpg) avg (img1 img2) // 2 # 均值降噪 cv2.imshow(降噪图, avg)2. 图片旋转python运行img cv2.imread(test.jpg) h, w img.shape[:2] # 以中心旋转45° M cv2.getRotationMatrix2D((w/2, h/2), 45, 1) res cv2.warpAffine(img, M, (w, h)) cv2.imshow(旋转, res)3. 直方图均衡提亮暗图python运行import cv2 img cv2.imread(dark.jpg, 0) # 0灰度图 equ cv2.equalizeHist(img) cv2.imshow(原图, img) cv2.imshow(均衡提亮, equ)4. 高斯模糊降噪频域等价低通python运行img cv2.imread(test.jpg) blur cv2.GaussianBlur(img, (5,5), 1.5) cv2.imshow(平滑降噪, blur)5. 边缘提取高通效果python运行img cv2.imread(test.jpg, 0) edge cv2.Laplacian(img, cv2.CV_8U) cv2.imshow(边缘, edge)学习顺序建议先吃透像素、分辨率、RGB、算术运算最基础看懂图片数据几何变换 插值日常修图必备灰度直方图、点运算调色核心空域卷积滤波降噪、边缘提取高频实操傅里叶变换与频域理论难点理解卷积加速逻辑即可综合写代码实现整套图像处理流水线