作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何使用 OpenCV 2.4.3 实现 imrotate(Mat src,Mat dst,double angle)?有一个函数 warpAffine() 但它做的更多并且令人困惑。它会裁剪超出范围的内容。
我想让它做一个更大的 Canvas 来适应一切。并用黑色填充空白点。
最佳答案
我是这样解决的。感谢您的回答。
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;
}
关于c++ - 如何使用 OpenCV 2.4.3 imRotate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14870089/
当我使用 MATLAB 的 imrotate 函数时,输出图像缺少部分,并用零填充。 我可以以某种方式使角上的三角形(即缺失的部分)充满图像的相对边缘吗?所以这就像我将图像与周围的 8 个相邻图像平铺
我试图在不使用 imrotate 函数的情况下使用 Matlab 旋转图像。我实际上是通过使用变换矩阵来实现的。但是它还不够好。问题是,旋转后的图像在“滑动”。让我用图片告诉你。 这是我要旋转的图像:
如何使用 OpenCV 2.4.3 实现 imrotate(Mat src,Mat dst,double angle)?有一个函数 warpAffine() 但它做的更多并且令人困惑。它会裁剪超出范围
我是一名优秀的程序员,十分优秀!