【问题标题】:Doing Contrast Enhancement Using A Map使用地图进行对比度增强
【发布时间】:2021-10-06 06:17:50
【问题描述】:

所以我尝试了不同的方式来处理当前图像。我有以下图像和图像的后续掩码:

最近有人向我指出了一种方法,例如图像的对比度增强。我已经寻找可能的方法来做到这一点,例如 hsv 拆分和应用掩码,但没有得到我正在寻找的结果。有没有办法增加图像的对比度,使图像中具有显着性的区域更亮,而低显着性的区域不那么亮。例如下图,我想尝试得到相同的结果。我查看了以下Automatic contrast and brightness adjustment of a color photo of a sheet of paper with OpenCV,但在任何事情上都没有太多运气。

【问题讨论】:

  • 我在您的另外两个帖子中向您指出了硬光构图。这不是你想要的吗?
  • 您是在处理彩色图像还是灰度图像?您要调整哪个?
  • 哦,是的,我试过了,发现即使结果很好。它没有保持我想要的颜色。然后我尝试了 HSV,但饱和度没有达到我想要的。我正在处理彩色图像,灰度图像是我想在绘画中强调的区域。我希望能够增加这些区域中绘画中颜色的对比度。
  • 这正是我给你的。如果这两种技术不适合你,我不明白你想要什么。你能显示你想要的前后吗?

标签: python opencv image-processing contrast image-enhancement


【解决方案1】:

这是 Python/OpenCV 中使用强度修改显着图的硬光组合。您可以根据需要调整 rescale_intensity 中的参数。

图片:

显着性:

import cv2
import numpy as np
import skimage.exposure

# read image 1
img12 = cv2.imread('img12.png')
hh, ww = img12.shape[:2]

# read saliency mask as grayscale and resize to same size as img1
mask = cv2.imread('hard_light_mask.png')
mask = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY)
mask = cv2.resize(mask, (ww,hh))
mask = cv2.merge([mask,mask,mask])

# adjust mask contrast and brightness
mask = skimage.exposure.rescale_intensity(mask, in_range=(0,255), out_range=(92,192)).astype(np.uint8)
print(mask.dtype)

# threshold mask at mid gray and convert to 3 channels
thresh = cv2.threshold(mask, 128, 255, cv2.THRESH_BINARY)[1]

# do hard light composite of img12 and mask
# see CSS specs at https://www.w3.org/TR/compositing-1/#blendinghardlight
img12f = img12.astype(np.uint8)/255
maskf =  mask.astype(np.uint8)/255
threshf =  thresh.astype(np.uint8)/255
threshf_inv = 1 - threshf
low = 2.0 * img12f * maskf
high = 1 - 2.0 * (1-img12f) * (1-maskf)
result = ( 255 * (low * threshf_inv + high * threshf) ).clip(0, 255).astype(np.uint8)

# save results
cv2.imwrite('img12_reduced_hardlight.png', result)

# show results
cv2.imshow('img12', img12)
cv2.imshow('mask', mask)
cv2.imshow('thresh', thresh)
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

【讨论】:

  • 天哪,就是这样。非常感谢,这正是我想要的,它突出了想要的区域,而不会过多地偏离风格。
  • 关于 CLAHE,这绝对是我需要研究的东西,我的教授建议我研究其中一些技术,但我还需要确保我能够这样做多个图像最终为此工作。
  • 但是,我注意到在生成的图像上,如果有意义的话,地图似乎比它们应该在的位置略低?眼睛的区域低于实际的眼睛。是因为调整大小问题吗?
  • 是的,这将是一个调整大小的问题。你怎么知道它们在简单调整大小时应该对齐?
  • 如果你需要它更高一点,你可以在调整大小之前剪掉显着图像顶部的一行,看看是否有帮助。否则,您可能必须选择控制点。
猜你喜欢
  • 2013-12-17
  • 2019-10-03
  • 2020-11-24
  • 1970-01-01
  • 2011-05-07
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
相关资源
最近更新 更多