当前位置: 首页 > news >正文

数字图像处理从入门到精通

数字图像处理完整入门教程;分模块

一、基础概念:什么是数字图像

1. 图像数字化原理

现实照片是连续模拟信号,电脑识别必须转成离散数字矩阵,分两步:

  1. 采样:把画面切成无数小方块(像素),分辨率 = 宽 × 高;采样越密图片越清晰、文件越大。
  2. 量化:给每个像素亮度分配数字:
    • 二值图:只有 0 (黑)/1 (白)
    • 灰度图:0 纯黑~255 纯白,共 256 级
    • RGB 彩色:红、绿、蓝三通道灰度叠加

2. 图像 vs 图形

  • 图像(位图):相机实拍、照片,最小单位像素,放大模糊(jpg/png)
  • 图形(矢量图):软件绘制(图标、CAD),靠数学公式存储,无限放大清晰(svg/dwg)

3. 色彩模型

  1. RGB(显示器 / 手机):相加混色,红光 + 绿光 + 蓝光组合所有颜色
  2. CMYK(打印机):相减混色,青、品、黄、墨,用于纸质印刷
  3. LAB(人眼视觉):亮度 L、红绿轴 A、黄蓝轴,调色专用

二、图像基础算术 / 逻辑运算(点对点,单像素计算)

所有运算都是同位置像素数值计算,不改变图片轮廓结构

1. 算术运算

  1. ** 加法C = A + B
    • 降噪:多张相同场景图片取平均,消除随机噪点
    • 特效:双重曝光、图片叠加
  2. ** 减法C = A - B
    • 去除固定背景、视频运动检测(前后帧相减,动的区域会发亮)
  3. ** 乘法C = A × B
    • 蒙版遮罩:用黑白掩码,黑色区域直接抹掉图像内容
    • 颜色混合:正片叠底(打印油墨效果)
  4. ** 除法C = A ÷ B
    • 修正拍摄亮度不均、多光谱图像比值分析

2. 逻辑运算(仅黑白二值图使用)

  • AND 与:两张图重叠区域保留,提取相交物体
  • OR 或:合并两张图所有内容
  • XOR 异或:两张图不一样的区域显示,相同变黑;图片和自身异或会清空

三、几何变换(平移、旋转、缩放、镜像,改变像素位置)

核心知识点:正向 / 反向映射

  • 正向:原图像素映射到新图,容易出现空洞
  • 反向映射(推荐):遍历新图每个坐标,反推原图对应像素,无空洞,搭配插值填充空白像素

1. 平移

公式:\(x'=x+t_x,\ y'=y+t_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. 镜像

水平镜像(左右翻转):\(x'=W-x\) 垂直镜像(上下翻转):\(y'=H\)

3. 缩放

\(x'=f_x·x,\ y'=f_y·y\) \(f_x/f_y>1\)放大;小于 1 缩小,缩放后空白像素需要插值填充

4. 旋转(绕图像中心)

  1. 先把图像原点移到中心
  2. 旋转矩阵: \(\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}\)
  3. 计算旋转后整张图边界,自动扩充画布避免裁切

插值算法(空白像素补值)

  1. 最近邻插值:取最近像素,速度快但锯齿严重
  2. 双线性插值:周边 4 像素加权,画面平滑,日常处理首选

四、灰度变换(点运算:只改像素亮度,不挪位置)

1. 线性灰度变换 \(D_B = a·D_A + b\)

  • \(a>1\):提升对比度;\(0<a<1\)降低对比度
  • \(b>0\)画面整体变亮;\(b<0\)变暗
  • \(a=-1,b=255\):图像反色(黑变白,白变黑)

2. 非线性灰度变换

自定义曲线拉伸中间灰度,提升画面层次感,常用公式: \(f(x)=x+\frac{0.8·x·(255-x)}{255}\)

3. 直方图(核心工具)

直方图:统计图片里每个灰度值有多少像素特点:

  1. 只记录亮度,不记录物体位置(物体移动直方图不变)
  2. 一张图对应唯一直方图,直方图相同图片不一定一样 用途:判断图片明暗、对比度、分割阈值
直方图均衡(自动增强)

把拥挤的灰度均匀铺开,暗图变通透、对比度大幅提升,适合逆光、昏暗照片。

直方图规定化

自定义目标直方图,统一多张图片光影色调(滤镜、批量调色)

五、傅里叶变换(空域 ↔ 频域)

1. 核心概念

  • 空域:我们看到的像素画面
  • 频域:描述画面灰度变化快慢
    • 低频:大片平滑区域(天空、墙面),频谱中心亮点
    • 高频:边缘、纹理、噪点,频谱外围亮点 变换作用:复杂图像运算(滤波、降噪)转到频域会大幅简化

2. 傅里叶变换关键性质

  1. 可分离:二维图可以先行、后列分别做一维变换
  2. 平移不变幅度:图片移动,轮廓频谱形状不变,只改变相位
  3. 旋转同步:图片转多少度,频谱同步转多少
  4. 卷积定理(最重要)空域卷积 = 频域相乘 图像滤波不用滑动卷积核,直接频域相乘,速度提升几十倍

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. 频域滤波(傅里叶变换后处理)

  1. 低通滤波:保留低频、过滤高频(降噪、模糊) 类型:理想(振铃波纹)、巴特沃斯、高斯(无波纹,首选)
  2. 高通滤波:保留高频、去掉低频(提取边缘) 缺陷:丢失画面基础亮度,图像发黑,搭配偏移增益改善
  3. 带通 / 带阻:只保留 / 删除特定频率纹理

七、完整图像处理通用流程

  1. 读取图片,转灰度 / RGB
  2. 预处理:几何变换(摆正、裁剪)
  3. 灰度校正:直方图均衡 / 线性提亮
  4. 降噪平滑(空域均值 / 频域高斯低通)
  5. 特征提取:高通滤波提取边缘
  6. 分割 / 识别:基于灰度阈值、边缘划分目标区域

配套实操(Python+OpenCV 极简示例,直接跑)

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)

学习顺序建议

  1. 先吃透像素、分辨率、RGB、算术运算(最基础,看懂图片数据)
  2. 几何变换 + 插值(日常修图必备)
  3. 灰度直方图、点运算(调色核心)
  4. 空域卷积滤波(降噪、边缘提取,高频实操)
  5. 傅里叶变换与频域(理论难点,理解卷积加速逻辑即可)
  6. 综合写代码实现整套图像处理流水线
http://www.jsqmd.com/news/1145516/

相关文章:

  • IP 协议全解:互联网的「快递寻址中枢」,搞懂网络层的核心逻辑
  • 【Java课程设计/毕业设计】基于 Web 的线上学习数据分析平台的设计与实现 基于 SpringBoot 的轻量化在线教育学习平台【附源码、数据库、万字文档】
  • 计算机毕业设计之家庭共享权益的健身俱乐部会员管理系统
  • 通俗讲解微服务架构,搞懂互联网大厂主流项目设计思路
  • 企业级私有Docker镜像仓库选型指南:什么才是企业软件交付的优解(2026)
  • 怎么开始投第一条广告
  • 2026成都全域搜索优化服务商全链路解析
  • 科智咨询:2025年中国IDC市场规模达1847.5亿元,AI驱动市场增速显著回升
  • 3分钟掌握阅读APP书源配置:免费解锁全网小说资源的完整指南
  • JDK源码学习笔记:Java码农进阶必备!
  • Codex Goal 的技术原理分析
  • 2026出口项目怎么选自锁垫圈公司
  • 口碑机构推荐清单与选择建议
  • 10.JavaScript 中的类和对象以及继承
  • 用 Codex + 跨境 Skill 做 Amazon 类目大盘分析
  • 从“不争”到共生:开源中国社区未来5年进化论
  • “CREAD: A Classification-Restoration Framework with Error Adaptive Discretization for Watch Time Pre
  • RJ45接口与网络变压器PCB设计:10个关键要点与3个常见EMC问题规避
  • ChatGPT分析Excel时,我常用的5种提问方式
  • ChatGPT生成Excel公式后,必须检查的5个地方
  • GD32F303VET6是一款耐高温的MCU
  • 内容多平台分发的传播放大效应分析
  • RAG学习总结2--向量数据库
  • AI文档翻译版面还原技术:从OCR到排版重建全解析
  • 2026实测:宁波3大暑假语文小升初机构横评
  • 黑箱API微调:基于进化策略的提示优化技术解析
  • 甘肃正规的民事案件律所哪家靠谱
  • 如何用Obsidian Local REST API彻底解放你的笔记自动化潜力
  • 小程序商城制作一个需要多少钱?2026全球5款AI/SAAS小程序商城制作工具推荐:餐宝盈/BBWEYY/比文云/Framer/NocoBase,含零代码SAAS、AI编程、源码定制交付
  • 配电站房环境监控系统:适配箱变环网,覆盖全类型配电场景