我做了两个功能,其中一个从左到右翻转图像,另一个从上到下翻转图像。但出于某种原因,当我加载图像时,图像没有任何反应。
这是从左到右翻转的代码。
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 :(得分:0)
尝试在for
循环中移动这些内容:
unsigned int left = 0;
unsigned int right = cols;
unsigned int top = 0;
unsigned int bottom = rows;
否则,您只会翻转第一行/列。
您的索引方式还存在一些其他问题,但我不会破坏修复这些问题的乐趣: - )