0

我已经完成了破译旧出生/洗礼声明(1734 年)的一些手写文本的任务,该声明在页面底部已被水洗(参见原始照片 Chavane.jpg)。
更具体地说,它是用于删除的文本,从姓氏条目 Chavane 开始,您几乎无法阅读“Le dix neuf décembre...”。我们的总统可以做的最佳尝试显示为Chavane2.jpg
尝试只隔离擦除的部分,这应该是我们真正的起点,然后再应用不同的技术(例如这些),但我对图像处理的了解非常低,结果也好不了多少。我能得到的最好的是在 clahe_2.png 下,使用以下代码:

import cv2 as cv
img = cv.imread('Chavane.jpg',0)
# create a CLAHE object (Arguments are optional).
clahe = cv.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
cl1 = clahe.apply(img)

在尝试用 Gimp 逐像素擦除之前,我想确定这确实是最好的基础。

4

1 回答 1

0

您可以在 Python/OpenCV 中使用除法标准化来提高质量。

  • 读取输入
  • 转换为灰度
  • 模糊图像
  • 将灰度图像除以模糊图像
  • 应用非锐化蒙版来锐化和增加对比度
  • 保存结果

输入:

在此处输入图像描述

import cv2
import numpy as np
import skimage.filters as filters

# read the image
img = cv2.imread('Chavane.jpg')

# convert to gray
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# blur
smooth = cv2.GaussianBlur(gray, (33,33), 0)

# divide gray by morphology image
division = cv2.divide(gray, smooth, scale=255)

# sharpen using unsharp masking
sharp = filters.unsharp_mask(division, radius=1.5, amount=2.5, multichannel=False, preserve_range=False)
sharp = (255*sharp).clip(0,255).astype(np.uint8)

# save results
cv2.imwrite('Chavane_division.jpg',division)
cv2.imwrite('Chavane_division_sharp.jpg',sharp)

# show results
cv2.imshow('smooth', smooth)  
cv2.imshow('division', division)  
cv2.imshow('sharp', sharp)  
cv2.waitKey(0)
cv2.destroyAllWindows()

分区图:

在此处输入图像描述

锐化图像:

在此处输入图像描述

于 2020-10-05T19:20:32.207 回答