【发布时间】:2017-10-18 06:31:25
【问题描述】:
我在尝试增加图像亮度时遇到问题。
这是原图:
我想得到的图像是这样的:
现在用下面的代码增加亮度:
image = cv2.imread("/home/wni/vbshare/tmp/a4_index2.png",0)
if sum(image[0])/len(image[0])<200:
new = np.where((255-image)<image,255,image*2)
else:
new = image
return new
而且,我得到了以下图像:
所以,似乎有些点的亮度溢出了。
我尝试将阈值从 200 更改为其他数字,例如125、100、140 等 但是,图像亮度要么保持几乎相同的暗度,要么溢出。
环境:
Python:2.7.10
Opencv:3.2.0
对此的任何建议表示赞赏。
谢谢。
【问题讨论】:
-
您可以使用
cv2.adaptiveThreshold()获得类似的结果,但您可能无法获得确切的原始形式。 -
所附图片均无效。
-
你确定?我没关系
-
@Wesley 很有趣。一定是一些暂时的问题。
-
无论如何,对于你的问题——为了避免溢出,我会使用饱和的操作。例如cv2.add 源数组自身,使用掩码选择要更新的元素。这并不是说这是一种理想的方法。
标签: python numpy opencv image-processing