Trong hàm này, tất cả các mảng ảnh đều là đơn kênh. Tham số mhi là ảnh lịch sử chuyển động mang các giá trị thực. Các biến delta1, delta2 là biên độ cực tiểu, cực đại của độ chuyển cho phép. Thƣờng thì giá trị delta1 đƣợc thiết lập bằng 0,5 và 1,5 lần giá trị trung bình xác định trong cvUpdateMotionHistory(). Giá trị aperture_size mang giá trị kích thƣớc chiều rộng, chiều cao của toán tử tạo độ chuyển. Các giá trị này có thể là:
aperture_size = -1: CV_SCHARR kích thƣớc 3x3 aperture_size = 3: ứng với bộ lọc Sobel 3x3 aperture_size = 5: ứng với bộ lọc Sobel 5x5 aperture_size = 7: ứng với bộ lọc Sobel 7x7
Hàm trả về: mask là ảnh 8 bit đơn kênh với các giá trị khác 0 là các độ chuyển hợp lệ đƣợc tìm thấy, orientation là ảnh với các giá trị thực chứa góc của hƣớng chuyển tại mỗi điểm ảnh.
Hàm cvCalcGlobalOrientation() tìm hƣớng toàn cục của chuyển động nhƣ là véc-tơ tổng của tất cả các hƣớng độ chuyển hợp lệ.
double cvCalcGlobalOrientation( const CvArr* orientation, const CvArr* mask, const CvArr* mhi, double timestamp, double duration );
Khi sử dụng cvCalcGlobalOrientation(), chúng ta truyền vào ảnh
orientation và mask đƣợc tính ở hàm cvCalcMotionGradient() cùng với
timestamp, duration và ảnh mhi xác định từ lời gọi hàm
cvUpdateMotionHistory(). Giá trị nhãn thời gian timestamp cùng với duration
cho phép hàm xác định đƣợc giá trị chuyển động từ mhi và orientation.
Chúng ta cũng có thể tác các vùng trong ảnh mẫu chuyển động mhi và xác định chuyển động cục bộ trong các vùng của ảnh. Trong hình dƣới đây, ảnh mhi
đƣợc quét từ vùng của vệt hiện tại. Khi một vùng đƣợc đánh dấu với nhãn thời gian gần nhất đƣợc tìm thấy thì sẽ xác định đƣợc chu vi của vùng đó để tính chuyển động trong đó.