Как рассчитать смещение вращения изображения для АЭС? - PullRequest
0 голосов
/ 27 февраля 2019

ippiGetRotateTransform и nppiRotate оба принимают параметры сдвига x и y, но я не уверен, как они работают.ИПП и АЭС вращаются вокруг (0, 0), а затем сдвигают результат. Этот пример показывает использование ippiGetRotateShift для вращения вокруг центра, но не объясняет, как он используется.

Соответствующая часть примера:

Ipp8u src[4*4] = ...;
Ipp8u dst[6*6];
double xShift;
double yShift;
double xShiftTmp;
double yShiftTmp;
double xCenterSrc = 2.0;  
double yCenterSrc = 2.0; 
double xCenterDst = 3.5;
double yCenterDst = 2.5;
double angle = 35.0;
ippiGetRotateShift ( xCenterSrc, yCenterSrc, angle, &xShift, &yShift );
/* xShift = -0.79 , yShift = 1.51 */
ippiGetRotateShift ( 1.0, 1.0, angle, &xShiftTmp, &yShiftTmp);
xShift += xShiftTmp; yShift += yShiftTmp; 
/* xShift = -1.18, yShift = 2.26 */
xShift += xCenterDst - xCenterSrc;
yShift += yCenterDst - yCenterSrc;
/* xShift = 0.32, yShift = 2.76 */

В этом примере показано, на что меняются значения, а не как и почему.Даже пункт назначения не объяснен.Почему это (3.5, 2.5) вместо (3, 3)?

В любом случае параметры сдвига x и y ведут себя одинаково. Как я могу рассчитать их для АЭС без зависимости от IPP?

1 Ответ

0 голосов
/ 05 марта 2019

Хорошо, проработка математики.Кажется, ippiGetRotateShift возвращает разность P и P 'после вращения.(P'.x = x - x cos (-angle) - y sin (-angle); P'.y = y cos (-angle) + x sin (-angle)).

...