1

目前,我正在进行离线签名验证。所以,我现在要做的是找到该特定签名图像的特定旋转值。在这种情况下,我想将签名的基线与水平轴一起标准化:
.
我试着做一些编码,

v1(1) = column2 - column1;
v1(2) = row2 - row1;
v2(1) = column2 - column1;
v2(2) = row1 - row1;
x1 = v1(1);
y1 = v1(2);
x2 = v2(1);
y2 = v2(2);

dotproduct = (x1*x2 + y1*y2);

v1mag = sqrt(x1*x1 + y1*y1);
v2mag = sqrt(x2*x2 + y2*y2);

costheta = dotproduct/(v1mag*v2mag);
angle = acos(costheta);

angleDeg = rad2deg(angle);
angleDeg = uint8(angleDeg);
angleDeg

%B = imrotate(invImg,-(angleDeg),'bilinear');

从编码中可以看出,变量“angleDeg”保存了旋转角度的值。以前,我使用过 imrotate() MATLAB,但问题是我必须手动输入角度的值,而不是调用“angleDeg”的变量。是否有任何其他方法/算法通过调用在 imrotate() 旁边保存角度值的变量来旋转图像?

4

1 回答 1

0

为什么需要手动输入角度?为什么要angleDeg转换为 uint8?

顺便说一句,该函数regionprops可以为您提供二值图像中连接组件的“方向”,即组件的长轴与水平线之间的角度。

于 2013-10-24T19:39:56.537 回答