如何平移旋转的OpenCV材质
How to translate a rotated OpenCV Mat
我正在编写一些代码,将OpenCV Mat旋转指定角度。使用以下代码,我已经成功地将Mat绕其中心旋转,但由于图像不是正方形,旋转图像的中心不是新图像的中心,并且图像的一部分落在新Mat之外。
Point2f src_center(source.cols/2.0F, source.rows/2.0F);
Mat rot_mat = getRotationMatrix2D(src_center, angle, 1.0);
Mat final;
final.create(calculateHeight(source.cols, source.rows, angle), calculateWidth(source.cols, source.rows, angle), CV_32FC1);
warpAffine(source, final, rot_mat, final.size());
注意:calculateHeight和calculateWidth是简单地根据原始Mat的尺寸和旋转角度来确定新Mat的大小的方法。
示例:原始图像旋转到:旋转图像
如何旋转Mat,使旋转后的Mat在边界内居中?
只需将要旋转的图像复制到足够大的新图像的中心,然后旋转新图像。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将OpenCV C++重写为EmguCV C#-如何使用指针
- OpenCV C++.快速计算混淆矩阵
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 在C++代码中包含opencv时,使用ctypes创建.so文件
- 哪些库可以通过Opencv调整曝光率
- 安装opencv失败-粘贴CMakeError.log的内容
- C++中的openCV Mat访问冲突
- OpenCV Android C++ imwrite not found
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 了解OpenCV中OpenCL的用法(材质/单元对象)
- 如何平移旋转的OpenCV材质
- OpenCV-创建材质对象阵列
- OpenCV未定义对材质的引用
- 使用glGetTexImage()获取OpenCV材质