主要使用numpy库数组拼接np.concatenate
使用示例如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
>>> 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]]) |
这里默认拼接的两张图像等宽或者等高
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 横向拼接 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删掉就好