用于创建镜像c ++的函数

时间:2015-04-03 11:15:53

标签: c++

我有一个图像 - 2D矩阵150 x 200像素:

PixelGrid[WIDTH][HEIGHT]

我有一个功能设置应该创建一个关于垂直轴的镜像。不幸的是它不起作用,当我加载修改后的图像时,它仍然与原始图像相同。

void MirrorImage (unsigned char PixelGrid[WIDTH][HEIGHT])
{

    for (int row = 0; row < WIDTH; row++)
    {
        for (int col = 0; col < HEIGHT / 2; col++)
        {
            int swapRow = WIDTH - 1 - row; // Mirror pixel

            unsigned char temp = PixelGrid[row][col];
            PixelGrid[row][col] = PixelGrid[swapRow][col];
            PixelGrid[swapRow][col] = temp;

        }
    }
}

我无法理解它有什么问题,有人知道吗?

2 个答案:

答案 0 :(得分:2)

当我希望你的意思是0到WIDTH / 2时,你是否计算从0到WIDTH的行?

(col应该是0到HEIGHT而不是0到HEIGHT / 2

答案 1 :(得分:1)

试试这个......它应该有用......

void MirrorImage (unsigned char PixelGrid[WIDTH][HEIGHT])
{

    for (int row = 0; row < WIDTH / 2; row++)
    {
        for (int col = 0; col < HEIGHT ; col++)
        {
            int swapRow = WIDTH - 1 - row; // Mirror pixel

            unsigned char temp = PixelGrid[row][col];
            PixelGrid[row][col] = PixelGrid[swapRow][col];
            PixelGrid[swapRow][col] = temp;

        }
    }
}