是。我想得到与matlab中的imrotate相同的结果,但我无法理解。 更具体地说,我得到了垫子A
a =
1 2 3
4 5 6
imrotate(a,45)
ans =
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?
答案 0 :(得分:1)
您可能需要使用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));