在C/C++中旋转图像

6
我需要用C++编写一个旋转图像的代码,它的功能类似于Matlab的imrotate函数。 请推荐一个好的链接或者如果有人可以提供imrotate的代码。 或者至少请解释算法。 这不是一份作业。我需要这个代码来完成我的项目。我们可以使用任何外部库或代码。
5个回答

8

OpenCV2.0拥有多种计算机视觉和图像处理工具。特别是warpAffine(通过定义旋转矩阵)将解决您旋转图像的问题。

文档中提到的2x3变换矩阵如下: alt text

其中θ是旋转角度,tx和ty分别是沿着xy轴的平移。

您可以在这里获取源代码。

此外,OpenCV2.0还有许多类似MATLAB的函数,如imread等。


1
我的朋友使用这个库并且很喜欢它。在这里看看:http://ashish-newday.blogspot.com/2009/12/mouse-cursor-position-control-using-our.html - Pratik Deoghare
1
但是在openCV中没有图像warpImage。 - avd
我应该如何定义旋转矩阵? - avd
1
是的,那似乎是个不错的教程,但它使用旧的 IplImage* 解释了 OpenCV。别忘了开始使用 OpenCV2.0 的新 Mat 类 - 它可以让你的代码变得 更加 简洁! - Jacob
OpenCV的代码现在已经在Git上:git://code.opencv.org/opencv.git - wanovak
显示剩余2条评论

3

1

请查看这个,希望能有所帮助。

关于同一主题的其他问题,请参考Stack Overflow上专家们的意见。


0

在 C++ 中,没有内置的方法可以完成这个任务,除非编写自己的用于操作二进制数据的函数,但这会引起其他问题,例如“如何在 C++ 中解压缩 jpg/png?”

您最好使用第三方图形库,如 libSDL


这个问题是一个完全有效的方式,可以要求一个可以从C++中链接的库。 - slim
1
我相信我已经将他链接到可链接的库了? - user229044

0

libgd有图像旋转功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接