射影矩阵如何成为长度为 8 的向量?

正常投影矩阵的大小为 3*3,有 9 个值。但是张量流变换需要一个维度为8的向量所以我不知道如何将我的矩阵转换成这个向量。


示例 - 我有一个进行旋转和平移的矩阵:


    top_row = [np.cos(rot_value), - np.sin(rot_value), trans_x]

    middle_row = [np.sin(rot_value), np.cos(rot_value), trans_y]

    last_row = [0, 0, 1]

    trans_matrix = np.stack((top_row, middle_row, last_row))

如何将此矩阵转换为 8 维向量中的矩阵,以便使用 tensorflow 变换?


慕尼黑5688855
浏览 126回答 1
1回答

侃侃无极

由于投影矩阵具有全局尺度模糊性,您可以乘以一个常数因子。射影变换有八个自由度,而不是九个,去除这种冗余的通常惯例是将右下角设为 1。对于您的情况,您应该可以使用top_row + middle_row + [0, 0]更普遍:(trans_matrix/trans_matrix[2,2]).flat[:8]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python