我有一张图像,它使用 cv::warpAffine 应用了一个变换。
我还有一组点,我对其应用了相同的变换。
现在,我想对扭曲点周围的像素进行采样。问题是,当我扭曲图像和点时,其中一些点变为负数(因此,我不能简单地使用 .at(i,j) 来访问它们)。
有没有优雅的方法解决这个问题?
谢谢。
最佳答案
您可以做的是对图像的四个角进行变形以获得变形图像的最大、最小坐标,然后根据 minX、minY 值将其平移回原点。
翻译的单应矩阵是这样的
h_trans = [1, 0, -minX, 0, 1, -minY, 0, 0, 1]
。您可以通过将此矩阵与原始矩阵相乘来获得结果转换。
关于c++ - cv::warpAffine - 负图像坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40029722/