omr-app / screen /screen_scan.py
mertbozkurt's picture
new update
712d61e
raw
history blame
4.72 kB
import csv
import streamlit as st
import numpy as np
import cv2
from PIL import Image
import optic1
from functions import image_show
import pandas as pd
from data_func import make_new_data,update,save_and_push
import os
from huggingface_hub import Repository
def pull_read(DATASET_REPO_URL,HF_TOKEN,DATA_FILE):
repo = Repository(
local_dir="data", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN
)
with open(DATA_FILE) as csvfile:
df = pd.read_csv(csvfile)
df = pd.DataFrame(df)
return repo, df
@st.cache
def convert_df_to_csv(df):
# IMPORTANT: Cache the conversion to prevent computation on every rerun
return df.to_csv().encode('utf-8')
def screen_scan_main():
col1,col2 = st.columns(2)
with col1:
teacher_code = st.text_input("Ogretmen kodu:",key=12)
with col2:
exam_code = st.text_input("Sınav Kodu:",key=13,value=10)
exam_code = int(exam_code)
teacher_code = str(teacher_code)
DATA_FILENAME = f"{teacher_code}.csv"
DATA_FILENAME = str(DATA_FILENAME)
image_file = st.file_uploader(
"Tarama Yapmak Icin Optigi Yukleyin", type=['jpeg', 'png', 'jpg', 'webp'])
if image_file != None:
col3,col4 = st.columns(2)
with col3:
if st.button("Tara ve Sonucu Goruntule"):
repo, repo_df = pull_read(DATASET_REPO_URL = "https://huggingface.co/datasets/mertbozkurt/school_data",
DATA_FILE = os.path.join("data", DATA_FILENAME),
HF_TOKEN = "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")
repo.git_pull()
image = Image.open(image_file)
image = np.array(image.convert('RGB'))
#(ans_txt,pathImage, save_images= True)
grading, wrong_ans, student_idFix, resim_list =optic1.optic1(ans_txt1="cevapanahtari/cevapanahtari_ders1.txt",
ans_txt2="cevapanahtari/cevapanahtari_ders2.txt",
ans_txt3="cevapanahtari/cevapanahtari_ders3.txt",
pathImage=image,save_images=False)
#image_show(resim_list)
if len(wrong_ans[0]) == 0:
wrong_ans[0] = " "
wrong_ans_str = ','.join(wrong_ans[0])
st.write("Notu:",int(grading[0]))
st.write("Yanlis Yaptigi sorular:",wrong_ans_str)
st.write("Ogrenci Numarasi:",student_idFix)
with col4:
if st.button("Tara ve Sonucu Kaydet"):
repo, repo_df = pull_read(DATASET_REPO_URL = "https://huggingface.co/datasets/mertbozkurt/school_data",
DATA_FILE = os.path.join("data", DATA_FILENAME),
HF_TOKEN = "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")
repo.git_pull()
image = Image.open(image_file)
image = np.array(image.convert('RGB'))
#(ans_txt,pathImage, save_images= True)
grading, wrong_ans, student_idFix, resim_list =optic1.optic1(ans_txt1="cevapanahtari/cevapanahtari_ders1.txt",
ans_txt2="cevapanahtari/cevapanahtari_ders2.txt",
ans_txt3="cevapanahtari/cevapanahtari_ders3.txt",
pathImage=image,save_images=False)
#image_show(resim_list)
if len(wrong_ans[0]) == 0:
wrong_ans[0] = " "
wrong_ans_str = ','.join(wrong_ans[0])
new_data = make_new_data(sinav_kodu=exam_code, ogrenci_no=int(student_idFix),
notu=int(grading[0]),yanlislar=wrong_ans_str)
#st.dataframe(new_data)
updated = update(new_data=new_data,ex_df=repo_df)
#st.dataframe(updated,use_container_width=True)
save_and_push(dataFrame=updated,repo=repo,fileName=f"data/{DATA_FILENAME}")
st.download_button(label="Tum verileri indirmek icin tiklayin",data=convert_df_to_csv(updated),
file_name=f'{teacher_code}.csv',mime='text/csv',)
#python -m streamlit run app.py
if __name__ == '__main__':
screen_scan_main()