原理:找出所有不是白色的像素點的橫縱坐標,篩選出最小最大橫縱坐標,截取矩形框,只保留有意義部分。
1. Cut_img
def cut_img(img): loc = np.where(img<255) # 內容為非白色部分(有意義部分) lx = [] ly = [] for pt in zip(*loc[::-1]): #pt 為每個像素點的坐標 lx.append(pt[1]) ly.append(pt[2]) sx = min(lx) bx = max(lx) sy = min(ly) by = max(ly) cv2.imwrite('full_file_path'+'.png',img[sy:by,sx:bx]) #保存時只保留有意義部分
2. Main
import numpy as np import cv2 import os img = cv2.imread('full_file_path') cut_img(img)
3. 效果
原圖:
效果圖: