Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You need to create a 2x3 (sic!) transformation matrix suited for cv::warpAffine():

| 1 0 tx | 
| 0 1 ty |

You translation is then given as by the vector (tx, ty).

Note: warpAffine requires a 2x3 matrix although technically it is better to think in 3x3 matrices for 2-D homogenous coordinates (the third row would be set implicitly to 0 0 1 in this case).

You need to create a 2x3 (sic!) transformation matrix suited for cv::warpAffine():

| 1 0 tx | 
| 0 1 ty |

You translation is then given as by the vector (tx, ty).

Note: warpAffine requires a 2x3 matrix although technically it is better to think in 3x3 matrices for 2-D homogenous coordinates (the third row would be set implicitly to 0 0 1 in this case).

Alternatively: If you only want a pure shift and nothing else you may simply shift the image within the corresponding cv::Mat object. Which is certainly faster but constrained to pure translations.