將原圖片切割成九宮格圖片

本文想實現一個分類器模型,該模型能夠識別出九宮格圖片並將圖片進行切割,首先我要構造訓練集,也就是自己生成一些九宮格圖片。

其中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

     

圖爲生成的九宮格圖片效果。

下面是分類模型的構建。

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