试一下这个?
import cv2
import numpy as np
threshold = 40 # 阈值
gray = cv2.imread('图片路径') # 导入图片
gray = cv2.cvtColor(gray, cv2.COLOR_RGB2GRAY) # 转换为灰度图像
nrow = gray.shape[0] # 获取图片尺寸
ncol = gray.shape[1]
rowc = gray[:, int(1 / 2 * nrow)] # 无法区分黑色区域超过一半的情况
colc = gray[int(1 / 2 * ncol), :]
rowflag = np.argwhere(rowc > threshold)
colflag = np.argwhere(colc > threshold)
left, bottom, right, top = rowflag[0, 0], colflag[-1, 0], rowflag[-1, 0], colflag[0, 0]
cv2.imshow('name', gray[left:right, top:bottom]) # 效果展示
cv2.waitKey()