Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-使用For循环水平翻转图像_Python_Image_For Loop_Flip - Fatal编程技术网

Python-使用For循环水平翻转图像

Python-使用For循环水平翻转图像,python,image,for-loop,flip,Python,Image,For Loop,Flip,我正在尝试使用for循环逐像素水平翻转图像。如果可能的话,试着纠正我所得到的,而不是提供一种完全不同的方法(即使更有效或更通俗),以帮助我和其他人从我的错误中学习。谢谢你的帮助 def flip(img): width = img.size[0] height = img.size[1] for y in range(height): for x in range(width): left = img.getpixel((x, y))

我正在尝试使用for循环逐像素水平翻转图像。如果可能的话,试着纠正我所得到的,而不是提供一种完全不同的方法(即使更有效或更通俗),以帮助我和其他人从我的错误中学习。谢谢你的帮助

def flip(img):
   width = img.size[0]
   height = img.size[1]
   for y in range(height):
       for x in range(width):
           left = img.getpixel((x, y))
           right = img.getpixel((width - 1 - x, y))
           img.putpixel((width - 1 - x, y), left)
           img.putpixel((x, y), right)

您需要沿X轴中途停止。否则,将所有像素交换回其原始位置

   for x in range(width // 2):

您正在一路穿过图像,但当您穿过一半时,您已经翻转了图像。所以在剩下的过程中,你把它翻回到原来的样子

因此:


有什么理由让你重新发明轮子,而不使用枕头或魔杖,例如?我会不好意思地承认,这是一个课堂练习,所以我们应该避免捷径来理解基本原理。我仍然认为这可能对其他人有用。太棒了。谢谢你的帮助。
for x in range(width//2):