【发布时间】:2019-05-31 05:07:43
【问题描述】:
我的图像很少,我需要以动态方式增加或减少图像的对比度和亮度,以便清晰可见。并且该程序需要是动态的,以便它甚至也适用于新图像。我也希望角色应该是黑暗的。
我能够增加亮度和对比度,但它不能对每张图像正常工作。
import cv2
import numpy as np
img = cv2.imread('D:\Bright.png')
image = cv2.GaussianBlur(img, (5, 5), 0)
#image = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY)[1]
#kernel = np.ones((2,1),np.uint8)
#dilation = cv2.dilate(img,kernel)
cv2.imshow('test', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
imghsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
imghsv[:,:,2] = [[max(pixel - 25, 0) if pixel < 190 else min(pixel + 25, 255) for pixel in row] for row in imghsv[:,:,2]]
cv2.imshow('contrast', cv2.cvtColor(imghsv, cv2.COLOR_HSV2BGR))
#cv2.imwrite('D:\\112.png',cv2.cvtColor(imghsv, cv2.COLOR_HSV2BGR))
cv2.waitKey(0)
cv2.destroyAllWindows()
#raw_input()
我想要一个适用于每张图片的程序,并且文字稍微暗一点,以便于看到。
【问题讨论】:
-
许多图形程序都有自动优化对比度/亮度设置。这对你有用吗?你想在opencv中实现类似的东西吗?它可能是基于直方图的。清晰可见到底是什么意思?至少对我来说,您提供的所有示例似乎都清晰可见。
-
@Trilarion 这里清晰可见基本上意味着不应该存在模糊,并且每个字符必须单独可读。我需要帮助将其实现到 Opencv 中
标签: python opencv image-processing brightness contrast