如何使用python去除图像黑边

img


图片经过sobel算子之后得到右边的图片,鱼刺变清晰了,但是图片旁边有黑边,如何去黑边?

试一下这个?
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()