• qinsi
    2020-08-17
    感觉内容有些跳跃…三维空间用的仿射变换矩阵是4x4的,但三维空间的点坐标用向量表示是3x1的,变换的时候要使用齐次坐标的4x1的向量才可以跟矩阵乘起来。如果是二维平面的话变换矩阵就是3x3,平面上点的齐次坐标是3x1。而OpenCV里warpAffine接受的变换矩阵大小是2x3

    作者回复: 你好,qinsi,在应用篇,也就是第12篇的如何通过矩阵转换让3D图形显示到二维屏幕上,我会有比较详细的说明,OpenCV的warpAffine接受的变换矩阵可以是这样:M = np.float32([[1,0,50],[0,1250]]) 它内部会做转换。

    
    1
  • howhigh
    2021-11-14
    老师您好,课程最后部分的仿射变换举例,先平移,再缩放,再绕x轴旋转,这个矩阵连乘是不是应该从右向左运算?是不是先平移的放在最右边?

    作者回复: howhigh 你好, 还是需要一一对应的。

    
    
  • Geek_ae1025
    2021-05-15
    请问老师,这里您说的“仿射映射是保持了原几何结构和维度不变的”,这里的几何结构不变具体指的是什么?如何度量的?这一点不太明白~

    作者回复: 因为仿射映射实际就是做了一次线性变换后,又进行了一次平移操作。

    
    
  • !null
    2021-03-17
    支撑点x0是向量空间v的元素,那支撑点x0也是向量吗?

    作者回复: 是的

    
    
  • Leoorz
    2020-09-28
    老师你好,缩放矩阵章节,第三列的向量,为什么不是{0, 0, z, 0} ?

    作者回复: 你好,HardToGiveaName 变换矩阵的第三列可以是{0, 0, z, 0}。

    
    
  • 那时刻
    2020-08-17
    请问老师,仿射变换矩阵右下角的数字表示的则是整体缩放,现在它是 1,也就意味着不进行整体缩放。为什么这个右下角的1,是对于整体缩放呢? 是因为它可以认为是仿射子空间的支撑点吗?

    作者回复: 你好,那时刻,它和支撑点没有关系,是因为三维空间的变换依赖于4x4矩阵,这个和齐次坐标有关,它将一个原本是n维的向量用一个n+1维向量表示,也是几何投影坐标,具体可以继续关注应用篇的如何通过矩阵转换让3D图形显示到二维屏幕上。

    共 2 条评论
    
  • LEE
    2021-01-02
    rows, cols = img.shape[0:2] translation = np.float32([[1, 0, 50], [0, 1, 20]]) dst = cv2.warpAffine(img, translation, (rows, cols))
    
    