目前,我正在进行离线签名验证。所以,我现在要做的是找到特定签名图像的特定旋转值。在这种情况下,我想将签名的基线与水平轴一起标准化:
。
我试过做一些编码,
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()旁边的角度值的变量来旋转图像?
答案 0 :(得分:0)
为什么需要手动输入角度?为什么要将angleDeg
投射到uint8?
顺便说一下,函数regionprops
可以给出二进制图像中连通分量的“方向”,即。即组件主轴与水平轴之间的角度。