c++ - cv::warpAffine - 负图像坐标

标签 c++ opencv

我有一张图像,它使用 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/

相关文章:

C++ 指针和指针在内存分配方面的身份

c++ - #include <cmath> : "In FIle included from" error message?

c++ - 爱特梅尔工作室7 : USART interrupt handler provided by ASF library works once only in case of encountering infinite loop in main()?

python - 来自两个向量的3D转换矩阵

c++ - 在 Qt 中选择实体

c++ - bad_alloc 在类 Texture 上调用 new 时

python-3.x - 从源代码构建后无法导入 cv2

python - Python 中的 OpenCV mat::convertTo

c++ - 在 opencv imencode 期间调试断言失败

android - 在包含 BUILD_SHARED_LIBRARY 之前缺少 LOCAL_MODULE