Gradio 是一个用于构建和部署交互式机器学习应用的Python库。它的设计目的是让开发者能够轻松地将训练好的机器学习模型封装成一个用户友好的界面,使得非技术人员也能够使用和理解模型的预测结果。(官方链接:https://www.gradio.app/)
base = gr.Image(label="Background", source="upload", tool="sketch", type="pil", height=512, brush_color='#FFFFFF', mask_opacity=0.5, brush_radius = 100)
mask = base["mask"].convert("L")
image = np.asarray(image)
mask = np.asarray(mask)
mask = np.where(mask > 128, 1, 0).astype(np.uint8)
在 Gradio 中,当设置 brush_color='#FFFFFF' 和 mask_opacity=0.5 时,这些参数影响了用户在交互式界面上使用绘图工具(如笔刷工具)时生成的遮罩 mask。
brush_color='#FFFFFF'
brush_color='#FFFFFF'表示绘图工具的颜色为白色。在数字表示中,白色的 RGB 值为(255, 255, 255)。- 当用户在上传的背景图像上使用白色绘图工具进行绘制时,这些绘制的区域在
mask中会对应较高的灰度值。
mask_opacity=0.5
mask_opacity=0.5表示绘图工具的不透明度为 0.5,也即绘制的区域会有一定的透明度。- 在
mask中,这些被绘制的区域会对应灰度值介于 0 和 255 之间的值,具体数值取决于用户绘制时的笔触和覆盖程度。
mask > 128
- 当使用
np.where(mask > 128, 1, 0)时,意味着将mask中灰度值大于 128 的像素设为1,小于等于 128 的像素设为0。 - 这个操作的目的通常是将
mask图像转换为二值化图像,其中灰度值较高的区域被视为前景(1),而较低的区域被视为背景(0)。 - 二值化也方便后续的算法处理,例如逻辑操作(如AND、OR、NOT)在二值掩码上非常高效,适用于实时处理。
影响结果的因素
- 绘图工具的颜色和透明度:白色作为绘图工具的颜色会在
mask中产生较高的灰度值,尤其是在设置了一定的透明度后,即使部分像素被绘制了,灰度值也可能超过 128。 - 绘制的方式和覆盖度:绘制的笔触大小、绘制的速度和持续时间,以及
mask_opacity的设置,都会影响绘制出的遮罩在mask中的灰度值分布。
因此,设置 brush_color='#FFFFFF' 和 mask_opacity=0.5 会使得用户在使用白色绘图工具时,在 mask 中产生灰度值大于 128 的区域,这些区域表示了用户绘制的部分。
以上分析代码来源于:https://github.com/ali-vilab/MimicBrush?tab=readme-ov-file

729

被折叠的 条评论
为什么被折叠?



