我有一个图像 - 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;
}
}
}
我无法理解它有什么问题,有人知道吗?
答案 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;
}
}
}