如何使用 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()
分区图像:
锐化结果:
我正在做一个项目,我想对几张图像执行局部对比度增强/自适应对比度增强。我尝试过阈值处理,但它影响了图像的文本。我附上下面的图片
来源: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()
分区图像:
锐化结果: