我需要用C++编写一个旋转图像的代码,它的功能类似于Matlab的imrotate函数。
请推荐一个好的链接或者如果有人可以提供imrotate的代码。
或者至少请解释算法。
这不是一份作业。我需要这个代码来完成我的项目。我们可以使用任何外部库或代码。
OpenCV2.0拥有多种计算机视觉和图像处理工具。特别是warpAffine(通过定义旋转矩阵)将解决您旋转图像的问题。
文档中提到的2x3变换矩阵如下:
其中θ是旋转角度,tx和ty分别是沿着x和y轴的平移。
您可以在这里获取源代码。
此外,OpenCV2.0还有许多类似MATLAB的函数,如imread
等。
在 C++ 中,没有内置的方法可以完成这个任务,除非编写自己的用于操作二进制数据的函数,但这会引起其他问题,例如“如何在 C++ 中解压缩 jpg/png?”
您最好使用第三方图形库,如 libSDL。
IplImage*
解释了 OpenCV。别忘了开始使用 OpenCV2.0 的新Mat
类 - 它可以让你的代码变得 更加 简洁! - Jacob