如何从扫描图像中裁剪黑角?

How can I crop black corners from a scanned image?

Scans/photocopies 经常漏掉变黑的角。如何使用 python 和 numpy、pillow 或 skimage 将这些黑角变白?

  1. 创建一个包含所有黑色对象的蒙版(mask = image < threshold)
  2. 删除接触边界的对象(new_mask = segmentation.clear_border(mask))
  3. 删除了哪些对象? objs = (new_mask != mask)
  4. 用白色填充这些对象:image[objs] = 1(或 255,如果 dtype int)。

如果需要确定被白色替换的对象是三角形,可以使用skimage.measure.regionprops进一步检查每一个。