繁体   English   中英

如何使用 OpenCV Python 在扫描图像中进行局部对比度增强

[英]How to do a localized Contrast Enhancement In a scanned Image Using OpenCV Python

我正在做一个项目,我想在几个图像上执行局部对比度增强/自适应对比度增强。 我尝试过阈值处理,但它影响了图像的文本。 我附上下面的图片

来源: ImageHere

结果: ImageHere

全局对比度和其他功能不起作用。 请不要建议CLAHE它给出了非常奇怪的结果。 请帮帮我谢谢。

这是在 Python/OpenCV 中使用除法归一化和一些锐化的一种方法。

  • 读取输入
  • 转换为灰度
  • 模糊图像
  • 将灰度图像除以模糊图像
  • 应用锐化(根据需要)
  • 保存结果

输入:

在此处输入图像描述

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

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

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

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

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

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

# save results
cv2.imwrite('math_question_division.jpg',division)
cv2.imwrite('math_question_division_sharpen.jpg',result)

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

分区图:

在此处输入图像描述

锐化结果:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM