【问题标题】:Image rotation in C with OpenCV使用 OpenCV 在 C 中进行图像旋转
【发布时间】:2015-02-03 20:21:38
【问题描述】:

为了项目的需要,我必须使用 OpenCV 库在 C 中创建一个旋转图像的函数。我知道这个库有一些功能可以做到这一点,但我只能使用该库来加载图片并在窗口中打印。 我已经有一些代码,但是 OpenCV 给我一个错误,我不明白为什么。 这是错误消息: http://pastebin.com/5Y8Wc1SF

这也是我的函数的代码: http://pastebin.com/w0AAeqyc

有人可以帮我解决吗?

【问题讨论】:

  • 请不要使用 opencv 的 c-api,它正在被 c++ 淘汰。
  • 我担心更改它有点晚了,因为没有时间在另一个库中重新编写所有代码。
  • 亲爱的,那件事发生在 5 年前。

标签: c image opencv rotation


【解决方案1】:

您的三角函数结果分配给了错误的类型

int cosd = cos(angle);
int sind = sin(angle);

他们需要

double cosd = cos(angle);
double sind = sin(angle);

float。但是,当这种情况得到纠正时,您可能会从这些陈述中得到负的图像尺寸:

int new_width = (int)((img->width) * cosd + (img->height) * sind);
int new_height = (int)((img->height) * cosd + (img->width) * sind);

但由于不清楚旋转的是哪个轴,我无法提供解决方案。

【讨论】:

  • 非常感谢我不再有错误!但是现在我遇到了一个小问题,即我得到的图像主要是黑色的,有一小部分(在左下角)看起来成为我旋转图像的一部分。
猜你喜欢
  • 1970-01-01
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
相关资源
最近更新 更多