Python 如何连接三个图像?

Python 如何连接三个图像?,python,numpy,opencv,Python,Numpy,Opencv,ValueError:操作数无法与形状一起广播(3101643,3)(16731643,3) 我希望输出是所有三个图像的串联我假设,您希望问题正文中提到的图像的串联。这可以通过使用OpenCV的和函数来实现 下面是一个垂直连接的简短示例。请注意,所有输入图像的宽度必须相同。对于水平连接,高度必须相同 让我们有三个输入图像: 然后,我们使用以下简短的代码片段: 导入cv2 将numpy作为np导入 #设置用于垂直连接的示例图像;宽度必须相同 图像1=64*np.one((1002003),n

ValueError:操作数无法与形状一起广播(3101643,3)(16731643,3)


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

我假设,您希望问题正文中提到的图像的串联。这可以通过使用OpenCV的和函数来实现

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

让我们有三个输入图像:

然后,我们使用以下简短的代码片段:

导入cv2
将numpy作为np导入

#设置用于垂直连接的示例图像;宽度必须相同 图像1=64*np.one((1002003),np.uint8) 图像2=128*np.one((2002003),np.uint8) 图像3=192*np.one((3002003),np.uint8) #使用cv2.vconcat连接 add=cv2.vconcat([image1,image2,image3]) #形象化 cv2.imshow('image1',image1) cv2.imshow('image2',image2) cv2.imshow('image3',image3) cv2.imshow(“添加”,添加) cv2.等待键(0)
最终结果如下所示:

另一个选择是,因为OpenCV在引擎盖下使用NumPy,所以可以使用。因此,与其

add=cv2.vconcat([image1,image2,image3])
你也可以使用

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

希望有帮助

我假设,您需要问题正文中提到的图像的串联。这可以通过使用OpenCV的和函数来实现

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

让我们有三个输入图像:

然后,我们使用以下简短的代码片段:

导入cv2
将numpy作为np导入

#设置用于垂直连接的示例图像;宽度必须相同 图像1=64*np.one((1002003),np.uint8) 图像2=128*np.one((2002003),np.uint8) 图像3=192*np.one((3002003),np.uint8) #使用cv2.vconcat连接 add=cv2.vconcat([image1,image2,image3]) #形象化 cv2.imshow('image1',image1) cv2.imshow('image2',image2) cv2.imshow('image3',image3) cv2.imshow(“添加”,添加) cv2.等待键(0)
最终结果如下所示:

另一个选择是,因为OpenCV在引擎盖下使用NumPy,所以可以使用。因此,与其

add=cv2.vconcat([image1,image2,image3])
你也可以使用

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

希望有帮助

#设置垂直拼接的示例图像;宽度必须是相同的image1=64*np.ones('RhutamHI0011570910_crop.jpg'),np.uint8)image2=128*np.ones('RhutamHI0011570910_crop1.jpg'),np.uint8)image3=192*np.ones('RhutamHI0011570910_crop2.jpg'),np.uint8)类型错误:“str”对象不能解释为integer@BIBINVARKEY不您只需留下您的初始
image1=cv2.imread(“OrchidAMHI0011570910_crop.jpg”)
等。
np.ones(…)
内容只是为了设置示例图像。在继续研究“更大”的问题之前,请先看一些关于Python和OpenCV的基本教程。@HansHire:我知道上面只是一个例子。然而,我已经将一幅图像裁剪成3个部分,并对所有3个部分进行了倾斜校正,然后将所有3个裁剪部分连接在一起。但是,我在剪切后取消剪切的图像中间部分在连接后保持不变。但我现在已经完成了所有三个的拼接#设置垂直拼接的示例图像;宽度必须是相同的image1=64*np.ones('RhutamHI0011570910_crop.jpg'),np.uint8)image2=128*np.ones('RhutamHI0011570910_crop1.jpg'),np.uint8)image3=192*np.ones('RhutamHI0011570910_crop2.jpg'),np.uint8)类型错误:“str”对象不能解释为integer@BIBINVARKEY不您只需留下您的初始
image1=cv2.imread(“OrchidAMHI0011570910_crop.jpg”)
等。
np.ones(…)
内容只是为了设置示例图像。在继续研究“更大”的问题之前,请先看一些关于Python和OpenCV的基本教程。@HansHire:我知道上面只是一个例子。然而,我已经将一幅图像裁剪成3个部分,并对所有3个部分进行了倾斜校正,然后将所有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)