【问题标题】:How to concatenate three images?如何连接三个图像?
【发布时间】:2019-09-03 07:37:40
【问题描述】:

ValueError: 操作数不能与形状一起广播 (310,1643,3) (1673,1643,3)

add = (image1 + image2 + image3)

image1 = cv2.imread("OrchidAMHI0011570910_crop.jpg")
image2 = cv2.imread("OrchidAMHI0011570910_crop1.jpg")
image3 = cv2.imread("OrchidAMHI0011570910_crop2.jpg")
add = (image1 + image2 + image3)
cv2.imshow("Addition", add)

我希望输出是所有三个图像的串联

【问题讨论】:

    标签: python numpy opencv


    【解决方案1】:

    我假设,您想要问题正文中提到的图像串联。例如,这可以通过使用 OpenCV 的 hconcatvconcat 函数来完成。

    这是一个垂直串联的简短示例。请注意,所有输入图像的宽度必须相同。对于水平连接,高度必须相同。

    让我们有这三个输入图像:

    然后,我们使用这个短代码sn-p:

    import cv2
    import numpy as np
    
    # Set up sample images for vertical concatenation; width must be identical
    image1 =  64 * np.ones((100, 200, 3), np.uint8)
    image2 = 128 * np.ones((200, 200, 3), np.uint8)
    image3 = 192 * np.ones((300, 200, 3), np.uint8)
    
    # Concatenate using cv2.vconcat
    add = cv2.vconcat([image1, image2, image3])
    
    # Visualization
    cv2.imshow('image1', image1)
    cv2.imshow('image2', image2)
    cv2.imshow('image3', image3)
    cv2.imshow('Addition', add)
    cv2.waitKey(0)
    

    而且,最终的结果是这样的:

    另一个选项可能是,因为 OpenCV 在后台使用 NumPy,所以使用 vstack。所以,而不是

    add = cv2.vconcat([image1, image2, image3])
    

    你也可以使用

    add = np.vstack([image1, image2, image3])
    

    希望有帮助!

    【讨论】:

    • # 设置垂直拼接的样本图片;宽度必须相同 image1 = 64 * np.ones(('OrchidAMHI0011570910_crop.jpg'), np.uint8) image2 = 128 * np.ones(('OrchidAMHI0011570910_crop1.jpg'),np.uint8) image3 = 192 * np. one(('OrchidAMHI0011570910_crop2.jpg'),np.uint8) TypeError: 'str' 对象不能被解释为整数
    • @BIBINVARKEY 不,你只需留下你最初的image1 = cv2.imread("OrchidAMHI0011570910_crop.jpg") 等。np.ones(...) 的东西只是为了设置示例图像。在继续解决“更大”的问题之前,请查看一些有关 Python 和 OpenCV 的基本教程。
    • @HansHire:我知道上面只是一个例子。但是,我已将图像裁剪为 3 部分,并对所有 3 个部分进行了倾斜校正,然后将所有 3 个裁剪部分连接在一起。但是,我在裁剪后歪斜的图像的中间部分在连接后保持不变。但我现在已经完成了所有三个的串联
    猜你喜欢
    • 1970-01-01
    • 2018-02-25
    • 2014-01-01
    • 2013-02-02
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多