我想沿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以外的选定原点执行剪切操作?

最佳答案

您应该结合这些转换是正确的。为了将它们组合在一起,请在第3行中添加[0,0,1],将所有矩阵转换为3x3矩阵。然后,您可以将所有3个矩阵相乘。完成后,底行仍为[0,0,1],然后可以将其删除,并将所得的2x3矩阵用作组合转换。

关于opencv - 在OpenCV中以改变的原点执行剪切,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13474706/

10-11 19:32