4

我正在对脏图像文档进行去噪处理。我想创建一个数据集,其中将添加合成噪声来模拟真实世界的杂乱伪影。模拟的污垢可能包括咖啡渍、褪色的太阳斑、折角的书页、大量的皱纹等等。我该怎么做?

样本清洁图像:

在此处输入图像描述

添加合成噪声后:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我怎样才能随机获得上面显示的图像?

4

3 回答 3

3

刮擦 - 背景 - 图像

在我看来,引入真实世界噪音的明显方法是引入真实世界噪音。因此,您可以在网上搜索纸张背景(示例链接):

  1. 论文背景
  2. 脏纸背景
  3. 彩色纸背景

应该做的伎俩。

根据您需要多少不同的模式,您可能希望自动抓取网络(selenium a python 包支持您)。

覆盖 - 背景 - 带有 - 你的 - 文本

接下来,根据您选择的编程语言,您应该能够将背景图像与您想要为 python 和 opencv 增强的文本图像覆盖,这在 SO 上进行了深入介绍。

最后,您还可以使用Augmentor包来进一步增强和扩充您的数据。

于 2019-11-28T11:51:53.410 回答
1

建议将干净的图像与噪声背景合并。尽管此方法不支持纸张变形。

以下代码可能会有所帮助:

import numpy as np
import cv2

# Load both clean and noisey background images in grayscale
img_clean = cv2.imread('img_clean1.jpg',0)
img_bg = cv2.imread('img_noisy_bg1.jpg',0)

# Make clean image binary
img_clean , thr = cv.threshold(img_clean , 10, 255, cv.THRESH_BINARY)

# Blend clean with the noisy BG
res = cv2.bitwise_and(img_bg, img_bg, mask=img_clean)

# Make it more natural!
res = cv.blur(res, (3,3))

cv2.imshow('image', res)
cv2.waitKey(0)
于 2019-11-26T14:04:31.823 回答
1

您可以使用Augraphy 库来完成此操作。披露:我是该项目的维护者。

干净的图像可以叠加到不同的纸张纹理、染色、用铅笔或荧光笔标记、折叠等等。我们支持大量不同的增强,每种增强都提供了对效果程度的大量控制。我最近写了一篇关于该库的简短介绍,其中包含几个示例图像,这里有一篇关于如何设置 Augraphy 管道以生成各种这些效果的帖子。

这是一个示例管道,使用来自NoisyOffice数据集的干净图像的高质量版本。此管道将生成以下图像:

  1. 已经用印刷机印刷到不同种类的纸上,
  2. 在一些单词上画几条铅笔线,并且
  3. 有穿孔。
from augraphy import *
import cv2


img = cv2.imread("Fontfre_Clean_TR.png")

ink = [Letterpress(layer="ink", p=1),
       Strikethrough(layer="ink",
                     num_lines_range=(2, 7),
                 strikethrough_length_range=(0.2, 0.4),
                 strikethrough_thickness_range=(1, 2),
                     p=1)]

paper = [PaperFactory(p=1)]

post = [BindingsAndFasteners(layer="post",
                             ntimes=5,
                             effect_type="punch_holes",
                             edge="left",
                             p=1)]

pipeline = AugraphyPipeline(ink,paper,post)

complete = pipeline.augment(img)

cv2.imshow("augmented", complete['output'])
cv2.waitKey(1000)

是结果

如果您需要任何帮助或想提出建议,请随时发布GitHub 问题。

于 2021-10-05T09:15:02.350 回答