首页 > 解决方案 > 修剪灰度图像的空白

问题描述

像这样的图像

我得到一个图像集,图像是这样的。

如何使用不包含任何有用内容的python删除图像下方的白色部分?

我将图像读取到 python 中的 numpy 数组。

我的代码是这样的:

data_dir = "/Users/leon/Projects/inpainting/data/"
images = []
files = glob.glob (data_dir + "*.jpg")
for file in files:
    image = cv2.imread(file, 0)
    images.append(image)

标签: pythonimagenumpydeep-learning

解决方案


这会在上方和下方逐行修剪空白(实际上它会修剪任何完整的白色行):

trimmed = image[np.where(~np.all(image == 255, axis=1))]

如果您只需要修剪顶部和底部边距,您可以执行以下操作:

empty_row_mask = np.all(image == 255, axis=1)
top = np.searchsorted(~empty_row_mask, True)
bottom = np.searchsorted(empty_row_mask, True)
trimmed = image[top:bottom]

推荐阅读