2014-09-22 3 views
0

Целью является поворот изображения, чтобы ограничивающие поля, включая экземпляры рук, были выровнены по оси. См. Следующие примеры. Первое изображение является оригинальным, а второе изображение - повернутой версией, где левая рука (она оставлена ​​на изображении) выровнена по оси, а третье изображение также является поворотным вариантом, где правая сторона выровнена по оси.matlab: вычислить степень, данную две точки на изображении

The original image and the hand instances are indicated by two bounding boxes The rotated image and the left hand (in the image) is now axis aligned The rotated image and the right hand (in the image) is now axis aligned

Теперь даны четыре точки, указывающие на коробку руки ограничительной, мы должны вычислить повернутую степень. Позвольте мне взять левую руку (она оставлена ​​в исходном изображении) в качестве примера. Предполагая, что четыре точки: [p1_x, p1_y], [p2_x, p2_y], [p3_x, p3_y], [p4_x, p4_y]. Линия, образованная [p1_x, p1_y] и [p2_x, p2_y], указывает на запястье, а p1, p2, p3, p4 - по часовой стрелке. Таким образом, желтая линия образована p1_x, p1_y] и [p4_x, p4_y].

Моя идея - рассчитать степень между желтой линией и горизонтальной осью. Для левой руки степень составляет около -10, а для правой стороны - около -110.

Моя проблема заключается в том, как рассчитать эти градусы?

ответ

1

Использовать atan2d для расчета обратного арктангенса 4-квадранта. Для присоединения сегмента линии [p1_x, p1_y] и [p4_x, p4_y], do:

atan2d(p4_y-p1_y,p4_x-p1_x) 
Смежные вопросы