相关疑难解决方法(0)

使用cv :: warpAffine偏移目标图像来旋转cv :: Mat

我正在尝试使用OpenCV 的C++ API1296x968图像旋转90度,我遇到了一些问题.

输入: 输入

旋转: 产量

如您所见,旋转的图像存在一些问题.首先,它具有与原始尺寸相同的尺寸,即使我专门Mat使用原始尺寸的反转尺寸创建目的地.结果,目标图像被裁剪.

我怀疑这种情况正在发生,因为我正在调用warpAffine()并传递原始Mat大小而不是目标大小Mat.但我这样做是因为我遵循了这个答案,但现在我怀疑答案可能是错的.所以这是我的第一个怀疑/问题.

第二,是,warpAffine()在一定的书面形式向目的地偏移(可能在旋转的数据复制到图像中)和该操作留下了可怕的大黑边的图像周围.

我该如何解决这些问题?

我正在分享以下源代码:

#include <cv.h>
#include <highgui.h>
#include <iostream>

using namespace cv;
using namespace std;

void rotate(Mat& image, double angle)
{
    Point2f src_center(image.cols/2.0F, image.rows/2.0F);

    Mat rot_matrix = getRotationMatrix2D(src_center, angle, 1.0);

    Mat rotated_img(Size(image.size().height, image.size().width), image.type());

    warpAffine(image, rotated_img, rot_matrix, image.size());
    imwrite("rotated.jpg", rotated_img);
}

int main(int argc, char* argv[])
{ …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing rotation

20
推荐指数
3
解决办法
4万
查看次数

用C/C++旋转图像

我需要用C++旋转图像的代码,其功能类似于matlab的imrotate函数.请建议一个很好的链接.或者,如果有人可以提供imrotate的代码.

或者至少请解释一下算法.

它不是一个功课.我的项目需要这个代码.我们可以使用任何外部库或代码.

c c++ image-processing rotation

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×2

image-processing ×2

rotation ×2

c ×1

opencv ×1