Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You can try finding the orientation of both the images using moments. Using the two orientation you can find the angle by taking the difference between them .

cv::Point3d findOrientation(const cv::Mat& src){
      cv::Moments m = cv::moments(src, true);
      double cen_x=m.m10/m.m00;
      double cen_y=m.m01/m.m00;
     double m_11= 2*m.m11-m.m00*(cen_x*cen_x+cen_y*cen_y);// m.mu11/m.m00;    
     double m_02=m.m02-m.m00*cen_y*cen_y;// m.mu02/m.m00;
     double m_20=m.m20-m.m00*cen_x*cen_x;//m.mu20/m.m00;    
     double theta = m_20==m_02?0:atan2(m_11, m_20-m_02)/2.0;
    //  theta = (theta / PI) * 180.0; //if you want in radians.(or vice versa, not sure)
    return cv::Point3d(cen_x,cen_y,theta);


I am returning the following: (x,y)(center of mass) and theta (orientation)