You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab 图像变换场景下变换矩阵各参数具体含义咨询

Matlab图像变换矩阵参数详解

Matlab中2D图像变换默认采用齐次坐标实现,最常用的两类变换矩阵参数含义如下:

1. 2D仿射变换矩阵

仿射变换支持缩放、旋转、平移、错切四种基础变换,对应的3×3矩阵最后一行固定为[0 0 1],结构为:

[a  b  0]
[c  d  0]
[e  f  1]

各参数含义:

  • 左上2×2子矩阵[a b; c d]:负责所有线性变换逻辑
    • a:水平方向缩放因子,取值为1时无缩放,大于1放大、小于1缩小,取负值时同步完成水平翻转
    • d:垂直方向缩放因子,规则同上,取负值时同步完成垂直翻转
    • b:水平错切系数,非0时图像会沿水平方向产生斜切变形
    • c:垂直错切系数,非0时图像会沿垂直方向产生斜切变形
      纯旋转场景下该子矩阵对应[cosθ -sinθ; sinθ cosθ],θ为逆时针旋转的弧度值,此时a=cosθ,b=-sinθ,c=sinθ,d=cosθ
  • 第三行前两个参数e、f:负责平移变换
    • e:水平方向平移像素数,正值向右平移,负值向左平移
    • f:垂直方向平移像素数,正值向下平移,负值向上平移
      注:Matlab采用行向量右乘变换矩阵的计算逻辑,和部分教材中列向量左乘的变换矩阵结构互为转置,不要混淆

代码示例

以下是生成“水平缩放2倍、逆时针旋转30度、向右平移10像素”仿射变换并应用的示例代码:

% 读取原图
original_img = imread("test.png");
% 定义变换参数
scale_x = 2;
theta = deg2rad(30);
offset_x = 10;
offset_y = 0;
% 构造仿射变换矩阵
tform = affine2d([scale_x*cos(theta) -sin(theta) 0; sin(theta) cos(theta) 0; offset_x offset_y 1]);
% 应用变换得到结果图
img_transformed = imwarp(original_img, tform);

2. 投影变换矩阵(透视变换)

如果需要做视角校正类的透视变形,使用的3×3矩阵最后一行不再固定为[0 0 1],结构为:

[a  b  p]
[c  d  q]
[e  f  s]

新增参数含义:

  • p、q:透视变形控制系数,取值不同可让图像呈现近大远小的透视效果
  • s:全局缩放归一化因子,通常取值为1

内容的提问来源于stack exchange,提问作者user123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:12:04