2014-11-04 3 views
0

이미지를 왼쪽에서 오른쪽으로 넘기고 다른 이미지를 위에서 아래로 뒤집는 두 가지 기능을 만들었습니다. 그러나 어떤 이유로 이미지를로드 할 때 이미지에 아무런 변화가 없습니다.이미지를 왼쪽에서 오른쪽으로 그리고 위에서 아래로 뒤집기

왼쪽에서 오른쪽으로 넘기는 코드입니다.

void flip_horizontal(uint8_t array[], 
       unsigned int cols, 
       unsigned int rows) 
{ 
    unsigned int left = 0; 
    unsigned int right = cols; 
    for(int r = 0; r < rows; r++) 
    { 
    while(left != right && right > left) 
     { 
     int temp = array[r * cols+ left]; 
     array[(r * cols) + left] = array[(r * cols) + cols - right]; 
     array[(r * cols) + cols - right] = temp; 
     right++; 
     left++; 
     } 
    } 
} 

그리고 위에서 아래로 넘기는 코드입니다.

void flip_vertical(uint8_t array[], 
      unsigned int cols, 
      unsigned int rows) 
{ 
    unsigned int top = 0; 
    unsigned int bottom = rows; 
    for(int r = 0; r < cols; r++) 
    { 
    while(top != bottom && bottom > top) 
     { 
     int temp = array[r * rows+ top]; 
     array[(r * rows) + top] = array[(r * rows) + rows - bottom]; 
     array[(r * rows) + rows - bottom] = temp; 
     bottom++; 
     top++; 
     } 
    } 
} 
+0

고정의 재미를 망치고하지 않습니다 . –

+1

@JonCage, [해당 태그가 없습니다.] (http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-official-deprecated) –

+0

공정한 점. 그것을 바로 잡자. 숙제 인 경우 제목에 표시해야합니다. –

답변

0

당신의 for 루프 내에서 이러한 이동하십시오 :

unsigned int left = 0; 
unsigned int right = cols; 

unsigned int top = 0; 
unsigned int bottom = rows; 

그렇지 않으면, 당신은 첫 번째 행/열 플립 것입니다.

당신이뿐만 아니라 색인있는 방법 몇 가지 다른 문제가 있습니다 그러나 이것은 당신이 태그 등으로 표시해야 할 숙제 질문이 있으면 나는 그 :-)