建立一张空白图像,把原来的图像复制上去(将每个像素值复制),再进行平铺,就能得到结果。如横向平铺5个图像,纵向平铺2个图像:
import cv2
import numpy as np
fn = "baboon.jpg"
if __name__ == '__main__':
print 'loading %s ... ' % fn
img = cv2.imread(fn)
w = img.shape[1]
h = img.shape[0]
#layoff the pictures in rows
sz1 = w*5
sz0 = h*2
#generate a blank photo
myimg1 = np.zeros((sz0,sz1,3),np.uint8)
#copy each pixels'value
img_x = 0
img_y = 0
for now_y in xrange(0,sz0):
for now_x in xrange(0,sz1):
myimg1[now_y,now_x,0] = img[img_y,img_x,0]
myimg1[now_y,now_x,1] = img[img_y,img_x,1]
myimg1[now_y,now_x,2] = img[img_y,img_x,2]
img_x +=1
if img_x >= w:
img_x = 0
img_y +=1
if img_y >=h:
img_y = 0
print '.',
cv2.namedWindow('img1')
cv2.imshow('img1',myimg1)
cv2.waitKey()
cv2.destroyAllWindows()