You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提升图像对比度与亮度:实现Windows照片应用清晰滤镜效果

图像对比度与亮度优化需求及代码改进

需求概述

我有一张输入图像,希望提升其对比度与亮度,达到类似Windows 10照片应用中Clarity滤镜的效果(具备更丰富细节、更优物体与色彩区分度)。

输入图像

输入图像

现有代码运行结果

现有代码运行结果

期望效果

期望效果

当前代码

import cv2
import numpy as np
import skimage.filters as filters
from PIL import ImageFilter,ImageEnhance

# read the image
img = cv2.imread('input.png')

# convert to gray
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# blur
smooth = cv2.GaussianBlur(gray, (95,95),0)

# divide gray by morphology image
division = cv2.divide(gray, smooth, scale=40)
# sharpen using unsharp masking
result = filters.unsharp_mask(division, radius=2.5, amount=1, multichannel=False, preserve_range=False)
result = (220*result).clip(0,220).astype(np.uint8)


cv2.imshow('smooth', result)  
cv2.waitKey(0)
cv2.destroyAllWindows()

代码优化方案

当前代码仅处理灰度图,丢失了色彩信息,且未针对性模拟Clarity滤镜的局部对比度增强逻辑。以下是优化后的实现:

优化思路

  1. 保留彩色通道处理,避免灰度转换丢失色彩信息
  2. 使用CLAHE(限制对比度自适应直方图均衡)增强局部对比度,还原细节层次
  3. 结合高斯除法、锐化与亮度饱和度调整,匹配Clarity滤镜的效果

优化后代码

import cv2
import numpy as np
from skimage.filters import unsharp_mask

# 读取彩色图像
img = cv2.imread('input.png')
# 转换为RGB通道(OpenCV默认BGR格式)
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# 拆分通道分别做增强处理
channels = cv2.split(img_rgb)
enhanced_channels = []
# 初始化CLAHE,控制局部对比度增强幅度
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))

for channel in channels:
    # CLAHE增强局部对比度,避免全局均衡的过曝问题
    clahe_channel = clahe.apply(channel)
    # 高斯模糊后做除法运算,强化高频细节
    smooth = cv2.GaussianBlur(clahe_channel, (51,51), 0)
    division = cv2.divide(clahe_channel, smooth, scale=255)
    # 适度锐化提升边缘清晰度
    sharpened = unsharp_mask(division, radius=1.5, amount=1.2, preserve_range=True)
    sharpened = np.clip(sharpened, 0, 255).astype(np.uint8)
    enhanced_channels.append(sharpened)

# 合并增强后的通道,转回BGR格式
enhanced_rgb = cv2.merge(enhanced_channels)
enhanced_bgr = cv2.cvtColor(enhanced_rgb, cv2.COLOR_RGB2BGR)

# 微调整体亮度与对比度
enhanced_bgr = cv2.convertScaleAbs(enhanced_bgr, alpha=1.1, beta=10)

# 显示并保存结果
cv2.imshow('Enhanced Image', enhanced_bgr)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('enhanced_output.png', enhanced_bgr)

优化说明

  • CLAHE处理:针对每个颜色通道做局部对比度增强,精准提升纹理与边缘细节,避免全局均衡导致的高光/暗部失真
  • 高斯除法:通过将通道图像与模糊后的图像做除法,强化图像的高频细节,模拟Clarity滤镜的清晰化逻辑
  • 彩色通道保留:全程基于彩色通道处理,避免灰度转换丢失色彩信息,还原更真实的色彩区分度
  • 亮度微调:通过convertScaleAbs适度提升整体亮度,让画面更通透

内容的提问来源于stack exchange,提问作者md.119

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:06:30