Это только идея.
Я обычно думаю о различении, чтобы отделить объект, который я хочу обнаружить / отследить. Я знаю, что вы можете обнаружить прямоугольники, используя другие методы.
Я предпочитаю получать бинарное изображение, которое включает только мой объект или несколько из них, включая целевой объект.
После этого работайте с каплями. Я использую библиотеку cvBlobs и имею возможность отслеживать капли и обнаруживать капли. В этой библиотеке есть метод получения угла (ориентации), вы можете попробовать эту опцию.
double cvAngle(CvBlob *blob);
Если ваши прямоугольники движутся, попробуйте обнаружить их, используя разницу между кадрами.
Извините за эту длинную речь.
Я хотел бы, чтобы это могло помочь вам.
Хорхе