Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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中垂直翻转图像_Python_Opencv_Image Processing - Fatal编程技术网

在Python中垂直翻转图像

在Python中垂直翻转图像,python,opencv,image-processing,Python,Opencv,Image Processing,我正在尝试垂直翻转图像 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

我正在尝试垂直翻转图像

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
我试图沿着像素进行迭代,并使用循环尝试垂直翻转图像

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
翻转后的图像如下所示:
我做错了什么?

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

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)

顺便说一句:如果要水平翻转,则必须反转行中的像素

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)

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

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)

顺便说一句:如果要水平翻转,则必须反转行中的像素

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)

既然您已经在使用OpenCV,为什么不直接使用它呢?我会像是
flipped\u image=cv2.flip(image,0)
。您是否明确希望使用循环手动翻转?@martineau请不要进一步使用
cv2
标记,因为它正在等待删除(请参阅标记wiki摘录)
python
opencv
标记在这里是首选。是的,我想创建我自己的flip函数,而不使用cv2.flip()方法或任何其他类似方法。除了
len(list)
中的输入错误外,我在此处对其进行了更正,但输出图像仍然错误。因为您已经在使用opencv,为什么不直接用这个?我会像是
flipped\u image=cv2.flip(image,0)
。您是否明确希望使用循环手动翻转?@martineau请不要进一步使用
cv2
标记,因为它正在等待删除(请参阅标记wiki摘录)
python
opencv
标记在这里是首选。是的,我想创建我自己的flip函数,而不使用cv2.flip()方法或任何其他类似的方法。除了
len(list)
中的输入错误外,我在这里纠正了它,但输出图像仍然错误。我会使用
cv2.flip
。将图像分解为像素行列表并反转列表在计算上更具侵入性。Opin说他想在没有cv2的情况下做这件事。flip(翻转)哦,我错过了评论。我只是看了看问题。谢谢我会使用
cv2.flip
。将图像分解为像素行列表并反转列表在计算上更具侵入性。Opin说他想在没有cv2的情况下做这件事。flip(翻转)哦,我错过了评论。我只是看了看问题。谢谢