import gradio as gr
from img_enhancement import Image_enhancement
"""1.2 对图像进行颜色空间变化:图片的对比度调整、灰度图转换、直方图均衡化"""
# 类实例化
img_enhance = Image_enhancement()
def img_handle_2():
def pridict_1(query_image=None,brightness=10,hue=10,contrast=10,saturation=10):
img_Color = img_enhance.ColorJitter(query_image, brightness,hue,saturation,contrast)
return img_Color
def pridict_2(query_image=None,method="灰度化"):
if method=="灰度化":
img_out = img_enhance.ToGray(query_image)
elif method=="直方图均衡化":
img_out = img_enhance.equalhist(query_image)
return img_out
title = "
图像处理操作2:颜色空间变化
"
description = "2.对图像进行颜色空间变化:图片的对比度调整、灰度图转换、直方图均衡化" # "颜色空间变化:图片的对比度调整、灰度图转换、直方图均衡化;" "频率像素点操作:模糊、锐化、添加噪声、边缘检测等操作"
with gr.Blocks() as demo:
gr.Markdown(title)
gr.Markdown(description)
with gr.Row():
with gr.Column(scale=1):
img = gr.components.Image(label="图片")
brightness = gr.components.Slider(minimum=0, maximum=100, step=5, value=10, label="选择亮度")
hue = gr.components.Slider(minimum=0, maximum=100, step=5, value=10, label="选择色调")
contrast = gr.components.Slider(minimum=0, maximum=100, step=5, value=10, label="选择对比度")
saturation = gr.components.Slider(minimum=0, maximum=100, step=5, value=10, label="选择饱和度")
btn_1 = gr.Button("对比度调整", )
method = gr.components.Radio(label="算法选择", choices=["灰度化", "直方图均衡化"],
value="灰度化",)
btn_2 = gr.Button("点击转化", )
with gr.Column(scale=1):
out = gr.components.Image(label="处理后的图片为", height="auto")
btn_1.click(fn=pridict_1, inputs=[img, brightness,hue,contrast,saturation], outputs=out)
btn_2.click(fn=pridict_2, inputs=[img, method], outputs=out)
return demo
if __name__ == "__main__":
with gr.TabbedInterface(
[img_handle_2()],
["图像处理2:颜色空间变化"],
) as demo:
demo.launch()