沿y = x有效翻转/转置图像

时间:2018-10-17 06:09:32

标签: python numpy opencv image-processing

我想这样沿y = x轴翻转图像。

Original

Flipped

我已经使此函数执行我想要的操作,但是我想知道是否有更优化的方法来执行此操作。处理大图像时,我做的功能有点慢

def flipImage(img):
    # Get image dimensions
    h, w = img.shape[:2]
    # Create a image
    imgYX = np.zeros((w, h, 3), np.uint8)
    for y in range(w):
        for x in range(h):
            imgYX[y,x,:]=img[x,y,:] #Flip pixels along y=x
    return imgYX

1 个答案:

答案 0 :(得分:5)

swap the first two axes对应于高度和宽度-

img.swapaxes(0,1) # or np.swapaxes(img,0,1)

我们也可以使用transpose来排列轴-

img.transpose(1,0,2) # or np.transpose(img,(1,0,2))

我们也可以roll axes达到相同的效果-

np.rollaxis(img,0,-1)

We use the same trick when working with images in MATLAB