【问题标题】:Flip/Transpose image efficiently along y=x沿 y=x 有效翻转/转置图像
【发布时间】:2018-10-17 06:09:32
【问题描述】:

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

我已经制作了这个函数来做我想做的事,但我想知道是否有更优化的方法来做到这一点。我做的功能在处理大图时有点慢

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

【问题讨论】:

    标签: python numpy opencv image-processing


    【解决方案1】:

    只需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.

    【讨论】:

    • 这把负担留给了图片库
    • @WalterTross OP 似乎已经标记了 NumPy,并且正在使用 NumPy 数组以及 NumPy 工具 - np.zeros 等,如果您指的是 NumPy 库。
    • @Divakar 谢谢,我感觉只有一行命令可以解决这个问题
    猜你喜欢
    • 2021-02-13
    • 2017-12-07
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 2013-08-16
    相关资源
    最近更新 更多