在不使用 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)
我试图在不使用任何默认 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)