图像尺寸调整:缩放矩阵如何改变像素坐标?

目录

一、前言

二、图像是如何表示的

三、什么是图像缩放

四、缩放矩阵是什么

五、缩放矩阵如何作用于坐标

六、为什么需要矩阵运算

七、图像缩放流程

八、放大示例

九、缩小示例

十、使用NumPy模拟缩放矩阵

十一、批量处理多个像素

十二、OpenCV实现图像缩放

十三、按照比例缩放

十四、为什么会出现锯齿

最近邻插值

双线性插值

双三次插值

十五、OpenCV指定插值方式

十六、深度学习中的应用

YOLO

ResNet

ViT

十七、缩放矩阵与仿射变换

十八、总结


一、前言

在计算机视觉、图像处理以及深度学习领域,经常需要对图片进行尺寸调整。

例如:

复制代码
图片压缩

缩略图生成

目标检测

图像增强

神经网络输入预处理

假设有一张图片:

复制代码
1920 × 1080

而模型要求输入:

复制代码
640 × 640

此时就需要进行:

复制代码
图像缩放(Image Scaling)

很多人认为:

复制代码
缩放图片

只是改变宽高

实际上在数学层面,图像缩放的本质是:

利用缩放矩阵(Scaling Matrix)重新计算每个像素的坐标位置。


二、图像是如何表示的

在计算机中:

图片本质上是一个矩阵。

例如:

复制代码
5 × 5 图像

可以表示为:

复制代码
[
  10 20 30 40 50
  15 25 35 45 55
  20 30 40 50 60
  25 35 45 55 65
  30 40 50 60 70
]

其中:

复制代码
每个元素

表示一个像素值

而每个像素都对应一个坐标:

复制代码
(x, y)

例如:

复制代码
左上角

(0,0)

右下角

(4,4)

三、什么是图像缩放

假设原始图片大小:

复制代码
100 × 100

目标尺寸:

复制代码
200 × 200

那么:

复制代码
图片被放大2倍

反之:

复制代码
200 × 200

↓

100 × 100

则属于:

复制代码
图片缩小

无论放大还是缩小,本质都是:

复制代码
重新计算像素坐标

四、缩放矩阵是什么

二维空间中的缩放矩阵:

复制代码
[
  Sx   0
   0  Sy
]

其中:

复制代码
Sx

X方向缩放比例

Sy

Y方向缩放比例

例如:

放大2倍:

复制代码
[
 2 0
 0 2
]

横向放大2倍:

纵向放大3倍:

复制代码
[
 2 0
 0 3
]

五、缩放矩阵如何作用于坐标

假设一个像素坐标:

复制代码
P

=

[
 10
 20
]

表示:

复制代码
x = 10

y = 20

缩放矩阵:

复制代码
[
 2 0
 0 2
]

计算:

复制代码
[
 2 0
 0 2
]

×

[
10
20
]

结果:

复制代码
[
20
40
]

说明:

复制代码
原坐标

(10,20)

↓

新坐标

(20,40)

图片放大了2倍。


六、为什么需要矩阵运算

如果图片有:

复制代码
1920 × 1080

像素数量:

复制代码
2073600

超过200万个像素。

如果逐个手工计算:

复制代码
效率极低

因此:

复制代码
矩阵乘法

成为图像变换的核心工具。


七、图像缩放流程


八、放大示例

假设原图坐标:

复制代码
(1,1)

(2,2)

(3,3)

缩放矩阵:

复制代码
[
 2 0
 0 2
]

计算后:

原坐标 新坐标
(1,1) (2,2)
(2,2) (4,4)
(3,3) (6,6)

可以看到:

复制代码
所有坐标扩大2倍

九、缩小示例

缩放矩阵:

复制代码
[
0.5  0
0    0.5
]

原坐标:

复制代码
(100,60)

计算:

复制代码
[
0.5 0
0 0.5
]

×

[
100
60
]

结果:

复制代码
[
50
30
]

说明:

复制代码
图片缩小一半

十、使用NumPy模拟缩放矩阵

python 复制代码
import numpy as np

point = np.array([
    [10],
    [20]
])

scale_matrix = np.array([
    [2,0],
    [0,2]
])

new_point = scale_matrix @ point

print(new_point)

输出:

复制代码
[[20]
 [40]]

十一、批量处理多个像素

多个坐标:

python 复制代码
import numpy as np

points = np.array([
    [1,2],
    [2,3],
    [3,4]
])

scale = 2

scaled_points = points * scale

print(scaled_points)

输出:

复制代码
[
 [2 4]
 [4 6]
 [6 8]
]

十二、OpenCV实现图像缩放

安装:

复制代码
pip install opencv-python

读取图片:

python 复制代码
import cv2

img = cv2.imread("test.jpg")

print(img.shape)

输出:

复制代码
(1080,1920,3)

表示:

复制代码
高1080

宽1920

RGB三通道

缩放图片:

python 复制代码
import cv2

img = cv2.imread("test.jpg")

resized = cv2.resize(
    img,
    (640,640)
)

cv2.imwrite(
    "result.jpg",
    resized
)

生成:

复制代码
640 × 640

新图片。


十三、按照比例缩放

例如:

复制代码
缩小50%

代码:

python 复制代码
import cv2

img = cv2.imread("test.jpg")

resized = cv2.resize(
    img,
    None,
    fx=0.5,
    fy=0.5
)

cv2.imwrite(
    "small.jpg",
    resized
)

其中:

复制代码
fx

横向缩放比例

fy

纵向缩放比例

十四、为什么会出现锯齿

理论上:

复制代码
坐标变换后

可能出现小数坐标

例如:

复制代码
(10,20)

↓

(15.5,30.5)

但是:

复制代码
像素位置必须是整数

因此需要:

复制代码
插值算法

计算像素值。


常见插值方法:

最近邻插值

复制代码
Nearest Neighbor

速度最快。


双线性插值

复制代码
Bilinear

最常用。


双三次插值

复制代码
Bicubic

效果更平滑。


十五、OpenCV指定插值方式

双线性插值:

python 复制代码
resized = cv2.resize(
    img,
    (640,640),
    interpolation=cv2.INTER_LINEAR
)

双三次插值:

python 复制代码
resized = cv2.resize(
    img,
    (640,640),
    interpolation=cv2.INTER_CUBIC
)

十六、深度学习中的应用

在训练神经网络时:

通常需要统一输入尺寸。

例如:

YOLO

复制代码
640 × 640

ResNet

复制代码
224 × 224

ViT

复制代码
224 × 224

因此:

复制代码
缩放矩阵

是计算机视觉最基础的变换之一

几乎所有视觉模型都会使用。


十七、缩放矩阵与仿射变换

图像缩放实际上属于:

复制代码
仿射变换

的一种。

常见仿射变换包括:

复制代码
缩放

旋转

平移

镜像

错切

其中:

复制代码
缩放矩阵

负责改变大小

旋转矩阵

负责改变方向

十八、总结

图像缩放看似简单,但背后涉及线性代数中的矩阵变换思想。

核心公式:

复制代码
新坐标

=

缩放矩阵

×

原坐标

缩放矩阵:

复制代码
[
 Sx 0
 0 Sy
]

其中:

复制代码
Sx

横向缩放比例

Sy

纵向缩放比例

在实际项目中:

复制代码
图像压缩

目标检测

图像分类

深度学习预处理

都离不开缩放矩阵。

可以这样理解:

复制代码
图像缩放

不是简单改变图片大小

而是在数学上

重新计算每一个像素的位置

而缩放矩阵,正是完成这一过程的核心工具。

相关推荐
GlobalInfo1 小时前
八旋翼无人机产业洞察与市场占有率演变:2026年趋势分析报告
人工智能·无人机
GISer_Jing1 小时前
Claude Code插件系统全解析
前端·人工智能·ai·架构
AI前沿资讯1 小时前
2026年AI 3D赛道新势力崛起:一体化创作平台成主流,V2Fun凭全流程能力突围
人工智能·3d
猫头虎1 小时前
Cursor推出的Composer 2.5 是什么?从定向 RL 到合成数据,AI 编程智能体再进化
人工智能·开源·prompt·aigc·copilot·ai编程·composer
触底反弹1 小时前
给 Claude 装上 27 个「外挂」后,我直接起飞了!
人工智能·react.js
KaMeidebaby1 小时前
卡梅德生物技术快报|peg 修饰调控 MXene/WS2 异质结,氨气传感器制备与机理研究
大数据·前端·人工智能·架构·spark·新浪微博
ydyd202604211 小时前
设备管理应用推荐2026深度测评!
大数据·人工智能·机器学习
美狐美颜SDK开放平台1 小时前
从采集到渲染:直播APP开发与实时美颜SDK技术实现全流程详解
人工智能·美颜sdk·直播美颜sdk·第三方美颜sdk·视频美颜sdk·美颜api
ws2019071 小时前
PCB扩产潮起,AUTO TECH China 2026吹响汽车智造集结号
人工智能·科技·汽车