gpt4 book ai didi

python - Streamlit:如何在缓存中存储变量值

转载 作者:行者123 更新时间:2023-12-05 01:33:36 26 4
gpt4 key购买 nike

我使用 2 个不同的 radio 选项来执行不同的任务。我想从一捕获图像,然后稍后在选项 2 中执行一些操作。当我在 my_image(在选项 1 中)中存储一帧后尝试将单选选项更改为 2 时,出现streamlit NameError: name 'my_image' is not defined 中的错误。我在想这可以通过将变量 my_image 存储在缓存中来完成,但我不知道该怎么做。有没有其他方法可以做到这一点。

import streamlit as st
import cv2

def Camera():
frames1 = st.empty()
button1 = st.button('DONE', key=0)
while cap.isOpened():
frames1.image(cap.read()[1], channels="BGR")
if button1:
my_image = cap.read()[1]
cap.release()
break
return my_image

option = st.sidebar.radio('Choose the option', [1, 2])

if option == 1:
cap = cv2.VideoCapture(0)

my_image = Camera()
st.image(my_image, channels="BGR")

if option == 2:
st.image(my_image, channels='BGR')

最佳答案

我猜我需要这个 SessionState要点复制到 SessionState.py 文件中。
我初始化一个变量 session_state = SessionState.get(name='', img=None)
option==1 中,赋值 session_state.img = my_image 然后用它来获取 option==2 中的 my_image

import streamlit as st
import cv2
import SessionState

def Camera():
frames1 = st.empty()
button1 = st.button('DONE', key=0)
while cap.isOpened():
frames1.image(cap.read()[1], channels="BGR")
if button1:
my_image = cap.read()[1]
cap.release()
break
return my_image


option = st.sidebar.radio('Choose the option', [0, 1])
session_state = SessionState.get(name='', img=None)
if option == 0:
cap = cv2.VideoCapture(0)

my_image = Camera()
st.image(my_image, channels="BGR")
session_state.img = my_image

if option == 1:
my_image = session_state.img
st.image(my_image, channels='BGR')

关于python - Streamlit:如何在缓存中存储变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64698788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com