c++ - OpenCV:基于三角选择倾斜图像

标签 c++ image opencv coordinate-transformation skew

我正在尝试使用 OpenCV 2.0 在图像中获取三个点,这三个点基本上构成一个三角形。我试图用这三点做的是将它们作为倾斜的引用。下图最好地解释了我要实现的目标:

enter image description here

  Before                                             After

我保证我的图像是上面的格式,所以我知道我唯一需要积极注意的点是形成 90 度角的点。

简而言之,我只是想根据形成 90 度角的点的位置来倾斜我的图像。

有什么方法可以在 OpenCV 中做到这一点? (最好使用 C++)

最佳答案

好吧,我从来没有做过这种类型的转换,但我可以以某种方式帮助你。

经过一番谷歌搜索后,我在 StackOverflow 上发现了与您类似的问题:

Skewing an image using Perspective Transforms

Jacob 对这个问题有很好的回答。似乎在所有类型的转换(旋转、剪切、平移和缩放)中,只有剪切可以帮助您(见下图):

shearing image

接下来是变换矩阵:

enter image description here

要在 OpenCV 中进行此类转换,有函数 cv::warpPerspective - 所以就试试吧。

希望对您有所帮助。

关于c++ - OpenCV:基于三角选择倾斜图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11247563/

相关文章:

c++ - 如果我 "slice"到一个抽象类会发生什么

c++ - 为什么使用指令的范围会有所不同?

python - 如何使用 openCV 和 python 从流中逐帧获取视频

algorithm - 确定图像是否与目标图像或多或少相似

c++ - 静态摄像机视频的 OpenCV 噪声去除

java - 从哪里获得 openCV 的 jar?

c++ - Visual Studio 不会更新 C++ 版本

c++ - 模板:我需要更好地学习这些吗?为什么我收到错误

javascript - 使用 Javascript 将一个类中的所有图像替换为另一个图像

javascript - 如何只显示与图像相关的内容?