我想沿y轴剪切图像,但保持给定的x值在同一高度。 如果我使用剪切矩阵:
[1, 0, 0]
[s, 1, 0]
s =具有“warpAffine”函数的剪切因子,我确实得到了剪切图像,但它始终是0,0的原点。 我需要将我的起源放在另一个x(甚至可能是y)。
所以我认为我应该组合翻译矩阵,将图像翻译到左边,执行剪切并将图像翻译回右边,但我不确定如何组合这些矩阵,因为:
[1, 0, dx] [1, 0, 0] [1, 0, -dx]
[0, 1, dy] * [s, 1, 0] * [0, 1, -dy]
显然不起作用。
如何对0,0以外的选定原点执行剪切操作?
答案 0 :(得分:0)
你是正确的,你应该结合这些变换。要组合它们,通过添加[0,0,1]作为第3行将它们全部转换为3x3矩阵。然后你可以乘以所有3个矩阵。当你完成底行仍然是[0,0,1]时,你可以删除它并使用生成的2x3矩阵作为组合变换。