python下使用np.hstack进行图片拼接时报错 && 使用matplotlib展示图片的相关操作

在Python中使用np.hstack进行图片拼接时,如果图片大小不一致会导致错误"ValueError: all the input array dimensions except for the concatenation axis must match exactly"。解决方法包括使用matplotlib进行图片展示,它允许不同大小和颜色通道的图片排列在同一个窗口,无需关注尺寸。通过subplot调整图片位置,并使用imshow显示。可以设置子图间距、去除坐标轴、调整清晰度以优化显示效果。

python中调用np.hstack对两张图片进行水平拼接时提示:“ValueError: all the input array dimensions except for the concatenation axis must match exactly” 代码:

import numpy as np
import cv2

imgname1 = '1.jpg'
imgname2 = '2.jpg'
img1 = cv2.imread(imgname1)
img2 = cv2.imread(imgname2)

hmerge = np.hstack((img1 , img2)) #水平拼接
cv2.imshow("merge", hmerge) #拼接显示为merge
cv2.waitKey(0)
cv2.destroyAllWindows()

此时python会报错:

Traceback (most recent call last):
  File "D:/xxxx/xxxx.py", line xx, in <module>
    hmerge = np.hstack((gray1, gray2)) #水平拼接
  File "D:\xxxx\venv\lib\site-packages\numpy\core\shape_base.py", line 280, in hstack
    return _nx.concatenate(arrs, 1)
ValueError: all the input array dimensions except for the concatenation axis must match exactly

这是因为拼接的两个图片的大小不一致,在使用numpy中的hstack()函数时,必须使所有输入数组具有相同的维数(数量和尺寸)才能进行拼接合并,否则就会提示上述错误。

解决方法:

1、利用opencv的其他方法,这里给出一些参考文档,不够都是使用C++或其他语言实现的,还没有找到python实现。

参考1:https://blog.youkuaiyun.com/u014581740/article/details/54983674(利用opencv将两张图像在同一窗口上显示,并在图片上显示文字)

参考2:opencv2 一个窗口显示多幅图片_cv2显示多张图片-优快云博客(opencv2 一个窗口显示多幅图片)

参考3:https://my.oschina.net/u/1426828/blog/368838(OpenC

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值