利用Python把四张图片按照顺序拼接起来

x33g5p2x  于2021-12-30 转载在 Python  
字(1.3k)|赞(0)|评价(0)|浏览(503)

一、需求:

给出四张图片,按照一定的顺序拼接起来

二、图片:

左上角:(像素512*512)

右上角:(像素284*512)

左下角:(像素284*512)

右下角:(像素284*284)

三、代码及说明:

  1. import skimage.io as io
  2. import numpy as np
  3. # 上面左右拼接
  4. jzg = io.imread(r"C:\Users\dyrs\Desktop\aaa\l1_b_1_1.jpg") # np.ndarray, [h, w, c], 值域(0, 255), RGB
  5. lgz = io.imread(r"C:\Users\dyrs\Desktop\aaa\l1_b_1_2.jpg") # np.ndarray, [h, w, c], 值域(0, 255), RGB
  6. pj1 = np.zeros((512,512 + 284,3)) #横向拼接
  7. pj1[:,:512,:] = jzg.copy() #图片jzg在左
  8. pj1[:,512:,:] = lgz.copy() #图片lgz在右
  9. pj1=np.array(pj1,dtype=np.uint8) #将pj1数组元素数据类型的改为"uint8"
  10. io.imsave('pj1.jpg', pj1) #保存拼接后的图片
  11. # 下面左右拼接
  12. jzg2 = io.imread(r"C:\Users\dyrs\Desktop\aaa\l1_b_2_1.jpg") # np.ndarray, [h, w, c], 值域(0, 255), RGB
  13. lgz2 = io.imread(r"C:\Users\dyrs\Desktop\aaa\l1_b_2_2.jpg") # np.ndarray, [h, w, c], 值域(0, 255), RGB
  14. pj2 = np.zeros((284,512 + 284,3)) #横向拼接
  15. pj2[:,:512,:] = jzg2.copy() #图片jzg2在左
  16. pj2[:,512:,:] = lgz2.copy() #图片lgz2在右
  17. pj2=np.array(pj2,dtype=np.uint8) #将pj2数组元素数据类型的改为"uint8"
  18. io.imsave('pj2.jpg', pj2) #保存拼接后的图片
  19. # 上面与下面拼接
  20. uzg = io.imread('pj1.jpg') # np.ndarray, [h, w, c], 值域(0, 255), RGB
  21. dgz = io.imread('pj2.jpg') # np.ndarray, [h, w, c], 值域(0, 255), RGB
  22. pj = np.zeros((512 + 284,796,3)) #竖向拼接
  23. pj[:512,:,:] = uzg.copy() #图片jzg在左
  24. pj[512:,:,:] = dgz.copy() #图片lgz在右
  25. pj=np.array(pj,dtype=np.uint8) #将pj数组元素数据类型的改为"uint8"
  26. io.imsave('pj.jpg', pj) #保存拼接后的图片

四、结果:

相关文章