我在翻转时遇到问题,因为仅显示了正确的部分,其余图片仅是灰色的。

![Lena FLipped][1]

Image *im2 = new Image();
im2->CloneImage(image);

unsigned int sizeX = im2->GetSizeX();
unsigned int sizeY = im2->GetSizeY();

for(int x = 0; x < sizeX/2;x++){
   for(int y = 0;y < sizeY;y++ ){

       Image::PixelType pix = im2->GetPixel(x,y);
       im2->SetPixel(x,y,sizeX-x-1);
       im2->SetPixel(sizeX-x-1,y,pix);
   }
}
ImageIO::Write( "flip.pgm", im2 );

最佳答案

im2->SetPixel(x,y,sizeX-x-1);


是错误的,您需要设置颜色:

Image::PixelType pix1 = im2->GetPixel(x,y);
Image::PixelType pix2 = im2->GetPixel(sizeX-x-1,y);
im2->SetPixel(x,y,pix2);
im2->SetPixel(sizeX-x-1,y,pix1);

关于c++ - 水平翻转图像C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13138846/

10-10 18:15