반응형
int x, y, x1, y1, x2, y2;
double rx, ry;
double angle = 45;
double rad = (angle*PI) / 180. ;
double cos_value = cos(rad);
double sin_value = sin(rad);
int Yhalf = h / 2 ;
int Xhalf = w / 2;
for (y = 0; y < h; y++)
for (x = 0; x < w; x++)
{
rx = ((x - Xhalf)*cos_value - (y - Yhalf) * sin_value) + Xhalf;
ry = ((y - Yhalf)*cos_value + (x - Xhalf) * sin_value) + Yhalf;
if (rx < 0 || rx > w - 1 || ry <0 || ry >h - 1)
continue;
ptr2[y][x].r = (BYTE)limit(ptr1[(int)ry][(int)rx].r);
ptr2[y][x].g = (BYTE)limit(ptr1[(int)ry][(int)rx].g);
ptr2[y][x].b = (BYTE)limit(ptr1[(int)ry][(int)rx].b);
}
45도 각도로 회전 했을때의 경우이다.
현재 원본의 영상의 중심점을 구하여 기준점으로 하고 회전을 하였다.
x' = xcos - ysin
y' = xsin + ycos
위의 회전 변환 공식을 사용하였다.
반응형
'프로그래밍 > c++ /영상처리' 카테고리의 다른 글
STL- transform() (0) | 2016.05.11 |
---|---|
연산자 오버로딩 (0) | 2016.02.19 |
최근방 이웃 보간법 (0) | 2015.10.03 |
영상이동 (0) | 2015.10.02 |
Median Filter (0) | 2015.10.01 |