C++ 创建镜像c++;
我有一个图像-2D矩阵150 x 200像素:C++ 创建镜像c++;,c++,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 &
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;
}
}
}
void MirrorImage(无符号字符像素网格[宽度][高度])
{
对于(int row=0;row
我不明白这是怎么回事,有人知道吗?你在从0到宽度数行,而我想你的意思是从0到宽度/2
(col应该是0到高度,而不是0到高度/2试试这个……它应该可以
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;
}
}
}
void MirrorImage(无符号字符像素网格[宽度][高度])
{
对于(int row=0;row
我看不出有任何明显的错误。你是否通过逐步检查te值的变化来调试代码?虽然从技术上讲没有问题,但你的变量命名将是维护的噩梦。WIDTH
是图像中的列数。@Angew同意我有一段时间对此感到困惑。我只是尝试去调试它,花了太长时间,出现了一个错误,它可能陷入了一个无止境的循环中,您希望我发布我的完整代码吗?@πάνταῥεῖ@Skinkaku,但你不知道为什么。顺便说一句,你有多少帐户?每一个毫无价值的问题一个帐户?这是一些家庭作业削减到部分吗?欢迎…但你必须调试它。:)