将原图片切割成九宫格图片

本文想实现一个分类器模型,该模型能够识别出九宫格图片并将图片进行切割,首先我要构造训练集,也就是自己生成一些九宫格图片。

其中r=3表示将其切割为3行,c=3表示将其切割为3列。你也可以生成4宫格图片。

import cv2
import os
#image_path=r'C:\Users\hou\Desktop\timg.jpg'
def cut(image_path,r=3,c=3):
    '''
    image_path:path of image
    r: num of split rows 
    c: num of split cols
    '''
    img=cv2.imread(image_path)
    width,height,_=img.shape
    cut_img_r=np.array_split(img,r)
    res=[]
    for col in range(c):
        cut_img_c=np.array_split(cut_img_r[col].swapaxes(1,0),c)
        cut_img_c=[cv2.copyMakeBorder(i.swapaxes(1,0),10,10,10,10,cv2.BORDER_CONSTANT,value=[255,255,255]) for i in cut_img_c]
        res.append(np.concatenate(cut_img_c,1))
    cut_img=np.concatenate(res)[10:-10,10:-10]
    
    return cut_img

     

图为生成的九宫格图片效果。

下面是分类模型的构建。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章