从(嘈杂的)纯色背景中提取单个对象

时间:2019-01-30 13:02:34

标签: python opencv

我正在扫描旧照片,我想自动化从扫描仪的(嘈杂的)纯白色背景中提取照片的过程,以便获得透明的照片。

我曾尝试在Python中使用OpenCV,并将其用作边缘/轮廓检测技术,但它会在后台拾取少量灰尘,而不会生成完整且正确的透明度贴图。

我有一个样本:

sample scan

和所需结果:

end result

1 个答案:

答案 0 :(得分:0)

有一些步骤可以达到您想要的结果(我用C ++实现它们,所以我不附加代码):

  1. 将图像转换为灰度。
  2. 以较高的阈值对其进行二值化(我使用240)。
  3. (可选)执行打开操作。
  4. 找到轮廓。
  5. 获得最大轮廓。
  6. 在另一个填充有零的垫子上绘制此最大轮廓
  7. 您会得到透明蒙版

Here's the transparency mask