是的。我想得到与 matlab 中的 imrotate 相同的结果,但我不明白这一点。 更具体地说,我得到一个垫子 A
a =
1 2 3
4 5 6
imrotate(a, 45)
答案=
0 0 0 0 0
0 0 3 6 0
0 1 2 6 0
0 1 4 0 0
0 0 0 0 0
我如何使用 OpenCV 做到这一点?
最佳答案
您可能需要使用 getRotationMatrix2D 和 warpAffine。 像这样:
Mat A(5, 5, CV_8U, Scalar(0));
Point center(3, 3);
double angle = 45;
int value=1;
for (int i = 2 ; i<4 ;i++)
{
for (int j = 1 ; j <4 ;j++)
{
A.at(j,i) = value;
value++;
}
}
Mat matrix = getRotationMatrix2D(center, angle, 1.0);
Mat imgRotation;
warpAffine(A, imgRotation, matrix, Size(5, 5));
关于c++ - 如何使用OpenCV实现imrotate功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176980/