opencv_filter / app.py
sunhaha123's picture
Add application file
0b466c6
import gradio as gr
import cv2
import numpy as np
def enhance_image(opencv_image, alpha, beta, saturation_factor):
image = opencv_image
# 调整亮度和对比度
image = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
# 将图像转换为HSV颜色空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 调整饱和度
hsv_image[:, :, 1] = np.clip(hsv_image[:, :, 1] * saturation_factor, 0, 255).astype(np.uint8)
# 将图像转换回BGR颜色空间
output_image = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR)
return output_image
iface = gr.Interface(
fn=enhance_image,
inputs=["image", gr.inputs.Slider(minimum=0, maximum=2, default=1.02, label="Alpha(对比度增加的比例因子)"),
gr.inputs.Slider(minimum=0, maximum=30, default=2, label="Beta(亮度增加的偏移量)"),
gr.inputs.Slider(minimum=0, maximum=2, default=1.16, label="Saturation Factor(饱和度调整因子,大于1增加饱和度,小于1减少饱和度)")],
outputs="image"
)
iface.launch()