为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用opencv python自动调整扫描图像的对比度和亮度

如何使用opencv python自动调整扫描图像的对比度和亮度

白板的微信 2023-04-25 17:31:41
我想在不同的照明条件下自动调整从手机拍摄的彩色图像的亮度和对比度。请帮助我,我是 OpenCV 的新手。来源: 输入图像结果: 结果我正在寻找的更多是本地化的转型。从本质上讲,我希望阴影尽可能地变亮,如果可能的话完全消失,并使图像的较暗像素变暗,对比度更高,而较亮的像素则变白,但不要达到过度曝光或任何东西的程度像那样。我已经尝试过CLAHE, Histogram Equalization, Binary Thresholding, Adaptive Thresholding, 等等 但没有任何效果。我最初的想法是我需要中Highlights和并使较暗的像素更多地接近平均值,同时使文本和线条尽可能暗。然后也许做一个对比过滤器。但我无法得到结果请帮助我。
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

这是在 Python/OpenCV 中执行此操作的一种方法。

  • 读取输入

  • 增加对比度

  • 将原始图像转换为灰度

  • 自适应阈值

  • 使用阈值图像使对比度增加图像上的背景变白

  • 保存结果


输入:

//img1.sycdn.imooc.com//64479e1400010a8906320951.jpg

import cv2

import numpy as np


# read image

img = cv2.imread("math_diagram.jpg")


# convert img to grayscale

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)


# do adaptive threshold on gray image

thresh = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 21, 15)


# make background of input white where thresh is white

result = img.copy()

result[thresh==255] = (255,255,255)


# write results to disk

cv2.imwrite("math_diagram_threshold.jpg", thresh)

cv2.imwrite("math_diagram_processed.jpg", result)


# display it

cv2.imshow("THRESHOLD", thresh)

cv2.imshow("RESULT", result)

cv2.waitKey(0)


阈值图像:

//img1.sycdn.imooc.com//64479e20000132df06240926.jpg

结果:

//img1.sycdn.imooc.com//64479e2e0001f06306360954.jpg




查看完整回答
反对 回复 2023-04-25
?
皈依舞

TA贡献1851条经验 获得超3个赞

您可以使用任何本地二值化方法。在 OpenCV 中,有一种称为 Wolf-Julion 局部二值化的方法可以应用于输入图像。以下是代码片段作为示例:


import cv2


image = cv2.imread('input.jpg')

gray = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)[:,:,2]


T = cv2.ximgproc.niBlackThreshold(gray, maxValue=255, type=cv2.THRESH_BINARY_INV, blockSize=81, k=0.1, binarizationMethod=cv2.ximgproc.BINARIZATION_WOLF)

grayb = (gray > T).astype("uint8") * 255


cv2.imshow("Binary", grayb)

cv2.waitKey(0)

上面代码的输出结果如下。请注意,要使用ximgproc模块,您需要安装 opencv contrib 包。

//img1.sycdn.imooc.com//64479e460001f4aa06440942.jpg

查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信