OpenCV将两幅图像拼在一起(Python)
Posted 二粒砂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV将两幅图像拼在一起(Python)相关的知识,希望对你有一定的参考价值。
一、使用函数的介绍
主要使用numpy库数组拼接np.concatenate
使用示例如下
>>> a = np.array(([1,2,3],[4,5,6]))
>>> b = np.array(([4,5,6],[7,8,9]))
>>> c = np.array(([7,8,9],[10,11,12]))
>>> np.concatenate((a,b,c), axis = 0)
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 4, 5, 6],
[ 7, 8, 9],
[ 7, 8, 9],
[10, 11, 12]])
>>> np.concatenate((a,b,c), axis = 1)
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9],
[ 4, 5, 6, 7, 8, 9, 10, 11, 12]])
当axis为0时,将几个数组纵向拼接
当axis为1时,将几个数组横向拼接
二、代码实现
这里默认拼接的两张图像等宽或者等高
# 横向拼接
def concat_1(img_1, img_2):
rows = np.size(img, 0)
# 乘255是因为想要间隙是白的,白色像素值是255,如果想要黑色间隙
interval_1 = np.ones((rows, 5)) * 255
img_o = np.concatenate((img_1, interval_1, img_2), axis=1)
return img_o
# 纵向拼接
def concat_0(img_1, img_2):
columns = np.size(img, 1)
interval_0 = np.ones((5, columns)) * 255 # 纵向拼接间隙
img_o = np.concatenate((img_1, interval_0, img_2), axis=0)
return img_o
其中,interval指两张图片之间的间隙。
- 横向拼接时,应该使interval的高度与图片的高度相同,interval的宽度可以自己设
- 纵向拼接时,应该使interval的宽度与图片的宽度相同,interval的高度可以自己设
这里拼接的是单通道灰度图,如果想要拼接彩色图改一下interval即可,如果嫌麻烦直接把interval删掉就好
以上是关于OpenCV将两幅图像拼在一起(Python)的主要内容,如果未能解决你的问题,请参考以下文章
计算机视觉OpenCV 4高级编程与项目实战(Python版):拼接图像