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

如何将OpenCV的getPerspectiveTransform矩阵转换为CSS矩阵?

OpenCV透视变换矩阵与CSS transform矩阵不匹配问题

我用Python的OpenCV库获取了透视变换矩阵:M = cv2.getPerspectiveTransform(source_points, points),但这个矩阵和CSS的Transform Matrix完全不同——尽管两者都是3x3的齐次矩阵。我推测OpenCV会根据缩放和倾斜值对x、y坐标做额外转换。

示例情况

  • 原始图像中,绿色点是源点,橙色点是目标点(源点与目标点示意图)
  • 通过cv2.getPerspectiveTransform(source, target)得到的矩阵:
array([[ 7.45735546e-01, -8.09538161e-02,  1.02930118e+01],
       [-4.69040997e-01,  8.60285055e-01,  7.66245963e+01],
       [-6.90849647e-04, -3.31231543e-04,  1.00000000e+00]])
  • 使用cv2.warpPerspective可以得到正确的变换结果(OpenCV正确变换后的图像)
  • 但将相同矩阵值应用到CSS的transform属性时,使用齐次矩阵参数transform: matrix(0.74574, -0.46904, -0.08095, 0.86029, -88.57274000000001, -102.30782),得到的结果却完全不符合预期(CSS变换后的错误结果)

我曾查找过getPerspectiveTransform的算法细节,但只找到使用示例,请问我到底遗漏了什么?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:35:24