admin 管理员组

文章数量: 1087139


2024年4月16日发(作者:四寸奥利奥蛋糕多少钱)

opencv计算平移和旋转的矩阵

opencv中,计算平移和旋转的矩阵可以使用`cv::getRotationMatrix2D()`和

`cv::warpAffine()`函数。下面是一个示例代码:

```cpp

#include

#include

#include

using namespace std;

using namespace cv;

int main()

{

string path = R"()";

cv::Mat Img = imread(path, IMREAD_GRAYSCALE);

cv::threshold(Img, Img, 200, 255, 0);

cv::Mat M = cv::Mat::zeros(2, 3, CV_32FC1);

double scale = 1; // 缩放因子,1 表示不进行缩放

double angle = 60.0 / 180.0 * CV_PI; // 旋转角度,正值表示逆时针旋转

cv::Point2f center = cv::Point2f( / 2.0, / 2.0); // 图

像旋转的中心位置

double a = 0; // 水平平移量

double b = 100; // 竖直平移量

// 取得旋转矩阵

M = cv::getRotationMatrix2D(center, angle, 1);

// 图像尺寸扩张(默认扩张方式)

cv::warpAffine(Img, img, M, cv::Size(, ));

// 用固定颜色填充扩张的边界

cv::Scalar borderColor = Scalar(255, 255, 255);

// 复制边缘填充

cv::warpAffine(img, img, M, () + cv::Size(500, 1000), 1,

BORDER_REPLICATE, borderColor);

return 0;

}

```

在上述代码中,首先使用`cv::getRotationMatrix2D()`函数获取旋转矩阵`M`,然后使

用`cv::warpAffine


本文标签: 旋转 扩张 矩阵 平移 表示