相册中的 AutoContrast?
AutoContrast in Albumentations?
我可以在 Albumentations 库中使用 AutoContrast 吗?即制作最暗的像素
黑色和最亮的像素白色。我看到了 RandomBrightnessContrast 一个,但是当我 select 对比度参数为 0 时它是正确的吗?
不幸的是,现在没有现成的自动对比度转换。您可以使用 Lambda transform:
自己实现它
def _autocontrast(img):
h = cv2.calcHist([img], [0], None, [256], (0, 256)).ravel()
for lo in range(256):
if h[lo]:
break
for hi in range(255, -1, -1):
if h[hi]:
break
if hi > lo:
lut = np.zeros(256, dtype=np.uint8)
scale_coef = 255.0 / (hi - lo)
offset = -lo * scale_coef
for ix in range(256):
lut[ix] = int(np.clip(ix * scale_coef + offset, 0, 255))
img = cv2.LUT(img, lut)
return img
transform = Lambda(image = lambda img: _autocontrast(img))
P.S。 Pull request 包含Autocontrast transform 正在审核中很长时间了。您可以在 github 上为这个 PR 投票,以便向维护者突出显示它 :)
我可以在 Albumentations 库中使用 AutoContrast 吗?即制作最暗的像素 黑色和最亮的像素白色。我看到了 RandomBrightnessContrast 一个,但是当我 select 对比度参数为 0 时它是正确的吗?
不幸的是,现在没有现成的自动对比度转换。您可以使用 Lambda transform:
自己实现它def _autocontrast(img):
h = cv2.calcHist([img], [0], None, [256], (0, 256)).ravel()
for lo in range(256):
if h[lo]:
break
for hi in range(255, -1, -1):
if h[hi]:
break
if hi > lo:
lut = np.zeros(256, dtype=np.uint8)
scale_coef = 255.0 / (hi - lo)
offset = -lo * scale_coef
for ix in range(256):
lut[ix] = int(np.clip(ix * scale_coef + offset, 0, 255))
img = cv2.LUT(img, lut)
return img
transform = Lambda(image = lambda img: _autocontrast(img))
P.S。 Pull request 包含Autocontrast transform 正在审核中很长时间了。您可以在 github 上为这个 PR 投票,以便向维护者突出显示它 :)