郭震 AI公众号:郭震AI

8 图像处理基础之图像变换与滤波

发布日期:

最近更新:

分类: Opencv教程

预计阅读: 3 分钟

阅读次数: 0

预计阅读3 分钟
结构重点9 个
图文要点6 张
正文规模1.3k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 9 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

图像处理基础之图像变换与滤波结构图查看大图
图像处理基础之图像变换与滤波结构图

OpenCV 学习要把图像输入、处理步骤、检测结果和工程性能放在一起验证。阅读时可以按「图像变换 -> 图像缩放 -> 图像旋转 -> 图像裁剪」建立结构,再回到正文里的代码、案例或指标做验证。

图像处理基础之图像变换与滤波核对图查看大图
图像处理基础之图像变换与滤波核对图

读完后,用一个真实小任务复查:输入是什么,处理环节在哪里,输出是否可验收;失败时先查「图像变换」,再查「图像缩放」。

在前一篇中,我们探讨了图像的基本操作,如图像的读取、显示以及基本的像素访问。这为我们后续的图像处理打下了良好的基础。在本篇中,我们将深入研究图像的变换与滤波,这将帮助我们提升图像的质量,进行特征提取,或直接修改图像的内容。

图像变换

图像变换是指在图像的空间域对图像进行各种操作,以达到特定的处理目标。下面我们将介绍一些常见的图像变换方法。

图像变换滤波判断卡查看大图
图像变换滤波判断卡

学习图像变换与滤波时,先看旋转、缩放、平移、模糊和锐化分别改变了什么信息。

1. 图像缩放

图像缩放是改变图像大小的过程。使用 OpenCV,我们可以通过 cv2.resize() 函数来实现。下面是一个简单的示例代码,演示如何实现图像缩放。

import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 缩放图像
scaled_image = cv2.resize(image, (400, 300))  # 目标大小为400x300

# 显示缩放后的图像
cv2.imshow('Scaled Image', scaled_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

2. 图像旋转

图像旋转通常使用旋转矩阵来实现。在 OpenCV 中,我们可以通过 cv2.getRotationMatrix2D() 函数获取旋转矩阵,然后使用 cv2.warpAffine() 函数进行旋转。以下是代码示例:

import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 获取图像中心
(h, w) = image.shape[:2]
center = (w // 2, h // 2)

# 构造旋转矩阵
angle = 45  # 旋转角度
M = cv2.getRotationMatrix2D(center, angle, 1.0)

# 旋转图像
rotated_image = cv2.warpAffine(image, M, (w, h))

# 显示旋转后的图像
cv2.imshow('Rotated Image', rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

3. 图像裁剪

图像裁剪是提取图像中某部分的操作。我们可以通过数组切片来实现图像裁剪。示例代码如下:

import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 裁剪区域 (y1:y2, x1:x2)
cropped_image = image[100:400, 150:450]

# 显示裁剪后的图像
cv2.imshow('Cropped Image', cropped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像滤波

图像滤波用于去噪或增强图像特征。以下为几种常见的图像滤波技术。

OpenCV阅读地图卡查看大图
OpenCV阅读地图卡

读完《图像处理基础之图像变换与滤波》不要只停在“看懂了”。回头挑一个步骤动手做一遍,再记录哪里卡住,后面的学习会更稳。

1. 均值滤波

均值滤波是一种简单的线性滤波,主要用于去噪。在 OpenCV 中,我们可以使用 cv2.blur()cv2.boxFilter() 来实现。示例代码如下:

import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 均值滤波
blurred_image = cv2.blur(image, (5, 5))  # 5x5 的均值滤波器

# 显示滤波后的图像
cv2.imshow('Blurred Image', blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

2. 高斯滤波

高斯滤波在去噪时效果更加明显,可以平滑图像,同时保留边缘信息。在 OpenCV 中,它使用 cv2.GaussianBlur() 实现。

import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 高斯滤波
gaussian_blurred_image = cv2.GaussianBlur(image, (5, 5), 0)

# 显示高斯滤波后的图像
cv2.imshow('Gaussian Blurred Image', gaussian_blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

3. 中值滤波

中值滤波是非线性滤波的一种,特别适合于去除椒盐噪声。使用 OpenCV 的 cv2.medianBlur() 函数可以方便实现:

import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 中值滤波
median_blurred_image = cv2.medianBlur(image, 5)

# 显示中值滤波后的图像
cv2.imshow('Median Blurred Image', median_blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像处理基础之图像变换与滤波应用复盘卡查看大图
图像处理基础之图像变换与滤波应用复盘卡

读到这里,可以把《图像处理基础之图像变换与滤波》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。

图像处理基础之图像变换与滤波应用检查卡查看大图
图像处理基础之图像变换与滤波应用检查卡

读完《图像处理基础之图像变换与滤波》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。

小结

在本篇文章中,我们学习了图像变换与滤波的基本知识,包括缩放、旋转、裁剪以及多种滤波技术。这些技巧在处理实际图像时非常重要,能够有效地改进图像的质量并帮助我们进行特征检测。

下一篇我们将深入探讨特征检测与描述之特征点检测算法,包括 SIFT、SURF 和 ORB 等算法的使用。这将为图像匹配和物体识别等任务奠定基础。希望大家继续关注学习!

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

图像处理基础之图像变换与滤波适合谁读?

这是 OpenCV 教程 系列第 8 / 24 篇,适合正在学习OpenCV 教程,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇OpenCV教程要多久?

按中文技术文章阅读速度估算,通读大约 3 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...