机器学习第3章第7节 : 图片的平铺效果

来源:互联网 发布:sql中别名 编辑:程序博客网 时间:2024/06/10 15:15

机器学习第3章第7节 : 图片的平铺效果


思路

图像的平铺,首先计算平浦后的图像的大小,生成同样大小的空白图像

然后在空白图像中逐个像素复制图像.

直接将空白图像像素值设置为平铺后该位置对应的像素值


代码

#!/user/bin/env python# -*- coding: utf-8 -*-"""平铺图片@author: Oscar"""import cv2import numpy as npfn = "img/test.jpg"if __name__ == '__main__':    print('loading %s...' %fn)    img = cv2.imread(fn)    height = img.shape[0]    width = img.shape[1]    #横向平铺5个像素    sz1 = width * 5    #纵向平铺2像素    sz0 = height * 2    #创建空白图像,然后接将图片排列    myimg = np.zeros((sz0,sz1,3),np.uint8)    #逐个图像复制    img_x = 0    img_y = 0    for now_y in range(0,sz0):        #增加行数        for now_x in range(0,sz1):            #复制对应位置的图像像素点            myimg[now_y,now_x,0] = img[img_y,img_x,0]            myimg[now_y,now_x,1] = img[img_y,img_x,1]            myimg[now_y,now_x,2] = img[img_y,img_x,2]            #增加列数            img_x += 1            if img_x >= width:                img_x = 0        img_y += 1        if img_y >= height:            img_y = 0        print(round((now_y * 100) / (height * 2)),'%')    cv2.namedWindow('img1')    cv2.imshow('img', myimg)    cv2.waitKey()    cv2.destroyAllWindows()

运行结果

原图

orgin

效果图

show


笔记

复制的时候是逐行复制.