在不使用 flip() 方法的情况下以 Python 垂直翻转图像

Flipping an image vertically in Python without using flip() method

我试图在不使用任何默认 flip() 或类似方法的情况下垂直翻转图像 functions.I 尝试沿像素迭代并通过使用循环尝试反转它以便我可以垂直翻转图像。

image=cv2.imread('boat.jpg',1)
height,width,channel=image.shape
list1=[]
list2=[]
for i in range(height):
    for j in range(width):
        list1.append(image[i,j])
for a in range(len(list1)-1,-1,-1):
     list2.append(list1[a])
b=0
for i in range(height):
    for j in range(width):
        image[i,j]=list2[b]
        b+=1

但是翻转后的图像是这样的:https://ibb.co/KKVkd2d 我做错了什么?

要垂直翻转,您必须反转数组中的行 - 第一行必须是最后一行,最后一行必须是第一行。您不必移动行中的像素。

import cv2
import numpy 

image = cv2.imread('boat.jpg', 1)

image = numpy.array(list(reversed(image)))

cv2.imshow('window', image)

cv2.waitKey(0)

顺便说一句:如果你想水平翻转,那么你必须反转行中的像素。

import cv2
import numpy 

image = cv2.imread('boat.jpg', 1)

image = numpy.array([list(reversed(row)) for row in image])

cv2.imshow('window', image)

cv2.waitKey(0)