如何使用 OpenCV 2.4.3 imRotate? [英] how to imRotate with OpenCV 2.4.3?

查看:41
本文介绍了如何使用 OpenCV 2.4.3 imRotate?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用 OpenCV 2.4.3 实现 imrotate(Mat src,Mat dst,double angle)?有一个函数 warpAffine() 但它做的更多而且令人困惑.它会裁剪超出范围的内容.

how can i implement imrotate(Mat src,Mat dst,double angle) using OpenCV 2.4.3? there is a function warpAffine() but it does to much more and is confusing. and it crops what goes out of bounds.

我想让它的画布更大,以适应一切.并用黑色填充空白处.

i want it to make a bigger the canvas to fit everything. and fill empty spots with black.

推荐答案

我是这样解决的.谢谢你的回答.

I solved it like this. thank to your answer.

Mat rotateImage(const Mat source, double angle,int border=20)
{
    Mat bordered_source;
    int top,bottom,left,right;
    top=bottom=left=right=border;
    copyMakeBorder( source, bordered_source, top, bottom, left, right, BORDER_CONSTANT,cv::Scalar() );
    Point2f src_center(bordered_source.cols/2.0F, bordered_source.rows/2.0F);
    Mat rot_mat = getRotationMatrix2D(src_center, angle, 1.0);
    Mat dst;
    warpAffine(bordered_source, dst, rot_mat, bordered_source.size());  
    return dst;
}

这篇关于如何使用 OpenCV 2.4.3 imRotate?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆