探索Gradio库中的Image模块及其强大功能


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/390/

请添加图片描述

(封面图由文心一格生成)

探索Gradio库中的Image模块及其强大功能

Gradio是一个用于构建交互式机器学习和深度学习应用程序的库,提供了简单易用的界面组件。其中的Image模块是用于上传/绘制图像(作为输入)或显示图像(作为输出)的组件。在本文中,我们将介绍Image模块的基本用法以及其中的change、edit、clear、stream、upload和select方法。

Image模块介绍

Gradio的Image模块用于处理图像输入和输出。它支持多种格式的图像,包括numpy数组、PIL图像和文件路径。以下是Image模块的一些关键参数:

  • value:用于设置组件的默认值,可以是PIL图像、numpy数组、文件路径或URL。
  • shape:用于裁剪和调整图像的形状,可以指定宽度和高度。
  • height:显示图像的高度(像素)。
  • width:显示图像的宽度(像素)。
  • image_mode:图像模式,可以是"RGB"(彩色)或"L"(黑白)。
  • invert_colors:是否在预处理步骤中反转图像。
  • source:图像的来源,可以是"upload"(上传)、“webcam”(摄像头)或"canvas"(画布)。
  • tool:用于编辑图像的工具,可以是"editor"(编辑器)、“select”(裁剪和缩放工具)、“sketch”(二值化草图)或"color-sketch"(多颜色草图)。
  • type:在传递给预测函数之前将图像转换为的格式,可以是"numpy"(numpy数组)、“pil”(PIL图像)或"filepath"(临时文件路径)。

除了这些参数,Image模块还支持其他配置选项,例如标签显示、交互性设置和容器设置。

change方法

change方法是一个监听器,当组件的值发生改变时触发,无论是由用户输入引起的还是由函数更新引起的。可以用于处理输入组件的值变化,例如调用机器学习模型的预测函数。

edit方法

edit方法是一个监听器,当用户使用内置编辑器编辑图像时触发。可以用于处理图像编辑事件,例如对编辑后的图像进行进一步处理或调用相应的函数。

clear方法

clear方法是一个监听器,当用户点击组件上的X按钮清除图像时触发。可以用于处理图像清除事件,例如重置图像处理的状态或清除相关的输入。

stream方法

stream方法是一个监听器,当用户使用组件进行图像流处理(如实时摄像头)时触发。可以用于处理图像流事件,例如实时处理视频流数据或调用相

应的函数。

upload方法

upload方法是一个监听器,当用户上传文件到组件时触发。可以用于处理图像上传事件,例如读取上传的图像文件并进行相应的处理或调用相应的函数。

select方法

select方法是一个监听器,当用户点击图像中的像素时触发。可以用于处理图像选择事件,例如根据用户选择的像素位置进行相应的处理或调用相应的函数。

通过使用这些监听器方法,可以灵活地处理Image模块中的各种事件,实现与图像相关的交互和处理功能。

参数详解

Image模块参数:

参数数据类型默认值描述
valuestr | _Image.Image | np.ndarray | NoneNoneImage组件的默认值,可以是PIL Image、numpy数组、路径或URL。如果是可调用对象,每次应用加载时都会调用该函数以设置组件的初始值。
shapetuple[int, int] | NoneNone图像传递给函数时的裁剪和调整大小的形状(宽度,高度)。如果为None,则与输入图像大小匹配。可以将宽度或高度设置为None,仅裁剪和调整大小另一个参数。
heightint | NoneNone显示图像的高度(以像素为单位)。
widthint | NoneNone显示图像的宽度(以像素为单位)。
image_modestr“RGB”图像的模式,"RGB"表示彩色,"L"表示黑白。
invert_colorsboolFalse是否在预处理步骤中反转图像。
sourcestr“upload”图像的来源。"upload"表示用户可以上传图像文件,"webcam"允许用户从网络摄像头拍摄快照,"canvas"默认为一个可编辑的白色图像。
toolstr | NoneNone用于编辑的工具。“editor"允许全屏编辑(如果source是"upload"或"webcam”,则是默认工具),"select"提供裁剪和缩放工具,“sketch"允许创建二进制草图(如果source是"canvas”,则是默认工具),"color-sketch"允许以不同颜色创建草图。"color-sketch"可与source="upload"或"webcam"一起使用,以在图像上进行草图。"sketch"也可与"upload"或"webcam"一起使用,以在图像上创建蒙版,在这种情况下,图像和蒙版都作为具有键"image"和"mask"的字典传递到函数中。
typestr“numpy”在传递给预测函数之前,将图像转换为的格式。"numpy"将图像转换为形状为(height, width, 3)、取值范围为0到255的numpy数组;"pil"将图像转换为PIL Image对象;"filepath"将图像传递给一个临时文件的路径。
labelstr | NoneNone在界面中的组件名称。
everyfloat | NoneNone如果value是可调用对象,在客户端连接打开时,每隔指定的秒数运行函数。否则没有任何效果。队列必须启用。可以通过此组件的.load_event属性访问事件(例如取消它)。
show_labelboolTrue如果为True,将显示标签。
containerboolTrue如果为True,将在容器中放置组件,提供一些额外的边框填充。
scaleint | NoneNone相对于同一行中相邻组件的宽度比例。例如,如果组件A的scale=2,组件B的scale=1,那么组件A的宽度将是组件B的两倍。应为整数。
min_widthint160最小像素宽度,如果屏幕空间不足以满足此值,则换行。如果某个比例值导致此组件比min_width更窄,将首先尊重min_width参数。
interactivebool | NoneNone如果为True,将允许用户上传和编辑图像;如果为False,只能用于显示图像。如果未提供,则根据组件是输入还是输出进行推断。
visibleboolTrue如果为False,将隐藏组件。
streamingboolFalse如果在live接口中为True,将自动流式传输网络摄像头的视频。仅在source为’webcam’时有效。
elem_idstr | NoneNone作为HTML DOM中此组件的id分配的可选字符串。可用于定位CSS样式。
elem_classeslist[str] | str | NoneNone作为HTML DOM中此组件的类分配的可选字符串列表。可用于定位CSS样式。
mirror_webcamboolTrue如果为True,则将翻转网络摄像头的视频。默认为True。
brush_radiusfloat | NoneNoneSketch的画笔大小。默认为None,选择一个合理的默认值。

change方法参数:

参数数据类型默认值描述
fnCallable | Nonerequired需要封装为接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应该返回一个值或值的元组,元组中的每个元素对应一个输出组件。
inputsComponent | list[Component] | set[Component] | NoneNone用作输入的gradio.components的列表。如果函数不需要输入,这应该是一个空列表。
outputsComponent | list[Component] | NoneNone用作输出的gradio.components的列表。如果函数不返回输出,这应该是一个空列表。
api_namestr | NoneNone定义此参数将在api文档中公开该端点。
status_trackerNoneNone
scroll_to_outputboolFalse如果为True,将在完成时滚动到输出组件。
show_progressLiteral[‘full’] | Literal[‘minimal’] | Literal[‘hidden’]“full”如果为True,将在等待时显示进度动画。
queuebool | NoneNone如果为True,将请求放入队列(如果已启用队列)。如果为False,则不会将此事件放入队列,即使已启用队列。如果为None,则使用gradio应用程序的队列设置。
batchboolFalse如果为True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(最多为max_batch_size),然后函数需要强制返回一个元组的列表(即使只有一个输出组件),元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列调用此方法,则最大批处理在一起的输入数。仅在batch=True时相关。
preprocessboolTrue如果为False,将不会在运行’fn’之前运行组件数据的预处理(例如,如果使用Image组件以base64字符串调用此方法,则将其保留为base64字符串)。
postprocessboolTrue如果为False,将不会在将’fn’的输出返回给浏览器之前运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]] | NoneNone在此监听器触发时取消其他事件的列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat | NoneNone在客户端连接打开时每隔指定的秒数运行此事件。以秒为单位。队列必须启用。

edit方法参数:

参数数据类型默认值描述
fnCallable | Nonerequired需要封装为接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应该返回一个值或值的元组,元组中的每个元素对应一个输出组件。
inputsComponent | list[Component] | set[Component] | NoneNone用作输入的gradio.components的列表。如果函数不需要输入,这应该是一个空列表。
outputsComponent | list[Component] | NoneNone用作输出的gradio.components的列表。如果函数不返回输出,这应该是一个空列表。
api_namestr | NoneNone定义此参数将在api文档中公开该端点。
status_trackerNoneNone
scroll_to_outputboolFalse如果为True,将在完成时滚动到输出组件。
show_progressLiteral[‘full’] | Literal[‘minimal’] | Literal[‘hidden’]“full”如果为True,将在等待时显示进度动画。
queuebool | NoneNone如果为True,将请求放入队列(如果已启用队列)。如果为False,则不会将此事件放入队列,即使已启用队列。如果为None,则使用gradio应用程序的队列设置。
batchboolFalse如果为True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(最多为max_batch_size),然后函数需要强制返回一个元组的列表(即使只有一个输出组件),元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列调用此方法,则最大批处理在一起的输入数。仅在batch=True时相关。
preprocessboolTrue如果为False,将不会在运行’fn’之前运行组件数据的预处理(例如,如果使用Image组件以base64字符串调用此方法,则将其保留为base64字符串)。
postprocessboolTrue如果为False,将不会在将’fn’的输出返回给浏览器之前运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]] | NoneNone在此监听器触发时取消其他事件的列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat | NoneNone在客户端连接打开时每隔指定的秒数运行此事件。以秒为单位。队列必须启用。

stream方法参数:

参数数据类型默认值描述
fnCallable | Nonerequired需要封装为接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应该返回一个值或值的元组,元组中的每个元素对应一个输出组件。
inputsComponent | list[Component] | set[Component] | NoneNone用作输入的gradio.components的列表。如果函数不需要输入,这应该是一个空列表。
outputsComponent | list[Component] | NoneNone用作输出的gradio.components的列表。如果函数不返回输出,这应该是一个空列表。
api_namestr | NoneNone定义此参数将在api文档中公开该端点。
status_trackerNoneNone
show_progressLiteral[‘full’] | Literal[‘minimal’] | Literal[‘hidden’]“full”如果为True,将在等待时显示进度动画。
queuebool | NoneNone如果为True,将请求放入队列(如果已启用队列)。如果为False,则不会将此事件放入队列,即使已启用队列。如果为None,则使用gradio应用程序的队列设置。
batchboolFalse如果为True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(最多为max_batch_size),然后函数需要强制返回一个元组的列表(即使只有一个输出组件),元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列调用此方法,则最大批处理在一起的输入数。仅在batch=True时相关。
preprocessboolTrue如果为False,将不会在运行’fn’之前运行组件数据的预处理(例如,如果使用Image组件以base64字符串调用此方法,则将其保留为base64字符串)。
postprocessboolTrue如果为False,将不会在将’fn’的输出返回给浏览器之前运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]] | NoneNone在此监听器触发时取消其他事件的列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat | NoneNone在客户端连接打开时每隔指定的秒数运行此事件。以秒为单位。队列必须启用。

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8110.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jvm运行时数据区

一、jdk、jre、jvm的关系 jvm只是把class字节码文件翻译成机器识别的二进制数据,不同的操作系统生成的操作系统指令又会不一样jre除了包含jvm外,还提供了很多类库(java.io、java.swing等包下类库)提供工具,比如javac&a…

MongoDB【MongoDB命令、CRUD操作 】(二)-全面详解(学习总结---从入门到深化)

目录 MongoDB命令 CRUD操作 MongoDB命令 基本操作 查看数据库 show dbs; 切换数据库 如果没有对应的数据库则创建 use 数据库名;创建集合 db.createCollection("集合名") 查看集合 show tables; show collections; 删除集合 db.集合名.drop(); 删除当前…

基于matlab使用深度学习的语义分割算法实现(附源码)

一、前言 此示例演示如何使用语义分割网络对图像进行分割。 语义分割网络对图像中的每个像素进行分类,从而生成按类分割的图像。语义分割的应用包括自动驾驶的道路分割和医疗诊断的癌细胞分割。 此示例首先向您展示如何使用预训练的 Deeplab v3 [1] 网络分割图像&am…

看一眼Mysql查询语句

目录 🛻 查询数据 🛻基本查询语句 🛻单表查询 🚕查询所有字段 🚕查询指定字段 🚕查询指定记录 🚕带in关键字的查询 🚕带between and的范围查询 🚕带like的字符匹…

NIO-Selector 网络编程

目录 一、阻塞 & 非阻塞 1、阻塞 2、非阻塞 二、selector 1、连接和读取 2、处理客户端断开 3、处理消息的边界 4、ByteBuffer大小分配 三、多线程优化 四、NIO vs BIO 1、stream vs channnel 2、IO模型 阻塞IO 非阻塞IO 多路复用 异步IO模型 一、阻塞 &am…

虚拟现实(VR)在医疗保健中的5种应用

医疗保健中的VR虚拟现实 虚拟现实的由来已久,18世纪,法国的医生使用布制的分娩模拟器向助产师和外科医生教授医学技术。在20世纪60年代初,医生一边对心肺复苏学员口述心肺复苏的技巧,一边使用一家塑料玩具厂家制造的塑料娃娃现场…

K8s 为什么要弃用 Docker

K8s 为什么要弃用 Docker 最近在学习容器技术的过程中,看到有关于Kubernetes“弃用 Docker”的事情,担心现在学 Docker 是否还有价值,是否现在就应该切换到 containerd 或者是其他 runtime。 随着深入了解,这些疑虑的确是有些道理…

Unreal 5 实现丧尸伤害和死亡

这一篇主要是实现玩家攻击丧尸可以造成伤害和自身血量为零时,丧尸可以死亡。丧尸也可以对玩家造成伤害,有攻击范围的判定。 这一篇的功能实现有四个功能: 丧尸被攻击掉血丧尸死亡处理玩家被攻击掉血玩家死亡处理 丧尸被攻击掉血 子弹的修改…

【C++】异常

文章目录 1. C语言传统的处理错误的方式2. C异常概念用法异常的抛出和匹配原则规则1情况2抛出异常位置最近的验证对象类型匹配的验证 规则3规则4 异常的重新抛出异常规范 1. C语言传统的处理错误的方式 错误处理机制: 1.终止程序 如:assert 断言终止 &a…

TX Text Control .NET for WPF 31.SP3 Crack

.NET WPF 应用程序的文档处理 将文档编辑、创建和 PDF 生成添加到您的 WPF 应用程序中。 视窗用户界面 功能齐全的文档编辑器 TX Text Control 是一款免版税、完全可编程的丰富编辑控件,它在专为 Visual Studio 设计的可重用组件中为开发人员提供了广泛的文字处理功…

[每日一水] Latex Tikz foreach 循环嵌套

\documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture} \foreach[count\i] \x in {20,18,...,2}\foreach[count\j] \y in {20,18,...,2}\node at (\i,\j) {\x \y}; \end{tikzpicture} \end{document}\node at (\i,\j) {\x \y}; 就是写文本的意思

Day.1 LeetCode刷题练习(最长公共前缀 C/C++两种解法)

题目: 例子: 分析题目: 主要目的:求出各个字符串的公共前缀 思路(本人解法): 用所给实例来看,不难看出我们可以直接以竖着对应来查看是否是公共前缀 , 这样就有了一…