Spaces:
Sleeping
Sleeping
File size: 12,687 Bytes
9aa8cad b12436e 9aa8cad 67f2c7b 9aa8cad b12436e 9aa8cad 67f2c7b 9aa8cad 67f2c7b 9aa8cad 67f2c7b b12436e 67f2c7b b12436e 67f2c7b b12436e 67f2c7b 9aa8cad b12436e 9aa8cad b12436e 9aa8cad |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 |
import streamlit as st
from PIL import Image
import numpy as np
import pandas as pd
import os
# Streamlit ile HTML ve CSS ekleme
st.markdown(f"""
<style>
.body {{
background-color: #f0f0f0; /* Açık gri arka plan */
/* veya */
background-image: url('/static/images/background.jpg');
background-size: cover;
}}
.main {{
background-color: rgba(255, 255, 255, 0.8); /* Beyaz renk, %80 şeffaflık */
padding: 20px;
border-radius: 10px;
background-size: cover;
height: 100vh; /* Sayfa yüksekliği */
}}
.header {{
color: white;
background-color: #4CAF50;
padding: 10px;
text-align: center;
border-radius: 5px;
}}
.section-title {{
color: #4CAF50;
font-size: 30px;
text-align: center;
margin: 20px 0;
border-bottom: 2px solid #4CAF50;
padding-bottom: 5px;
}}
.sidebar .sidebar-content {{
background-color: #f4f4f9;
}}
.content-box {{
border: 2px solid #4CAF50;
padding: 20px;
border-radius: 5px;
margin-bottom: 20px;
}}
.form-container {{
border: 2px solid #4CAF50;
padding: 15px;
border-radius: 5px;
background-color: #f9f9f9;
}}
.table-container {{
border: 2px solid #4CAF50;
padding: 15px;
border-radius: 5px;
background-color: #f9f9f9;
}}
.footer {{
text-align: center;
font-size: 12px;
color: gray;
margin-top: 20px;
}}
</style>
""", unsafe_allow_html=True)
# Ana başlık
st.title("Tümör Tespit Sistemi")
# Tümör tespiti için eşik değeri
TUMOR_BRIGHTNESS_THRESHOLD = 100
# Menü çubuğu oluştur, her seçenek için benzersiz key parametresi ekle
# Sidebar menu
menu = st.sidebar.selectbox("Menü", ["Anasayfa", "Hakkımızda", "Tümör Tespiti","Örnek Analizlerimiz", "Hasta Yorumları", "Bize Ulaşın"], key="menu_selectbox")
# Tümör tespiti fonksiyonu
def detect_tumor(image_array):
"""
Görüntü dizisini analiz ederek tümör tespiti yapar
Args:
image_array: Numpy array olarak görüntü
Returns:
tumor_status: Tümör durumu (string)
explanation: Açıklama metni (string)
has_tumor: Tümör var mı? (boolean)
"""
# Görüntünün ortalama parlaklık değerini hesapla
average_brightness = np.mean(image_array)
# Tümör var mı yok mu tahmini (basit bir yaklaşım)
if average_brightness < TUMOR_BRIGHTNESS_THRESHOLD: # Düşük parlaklık tümör olasılığını artırır
tumor_status = "Tümör Tespit Edildi"
explanation = "Görüntüde yüksek kontrastlı alanlar tespit edildi, bu da tümör olasılığını artırıyor."
has_tumor = True
else:
tumor_status = "Tümör Yok"
explanation = "Görüntüde belirgin bir kontrast farkı bulunmamaktadır, bu da tümör olmadığına işaret edebilir."
has_tumor = False
return tumor_status, explanation, has_tumor
# Menüye göre sayfaların içeriğini değiştir
if menu == "Anasayfa":
st.markdown('<div class="header"><h2>Hoş Geldiniz!</h2></div>', unsafe_allow_html=True)
st.write("Bu uygulama, MR görüntüleri üzerinden tümör tespiti ve analiz yapmaktadır.")
# Resmi yükleyin
try:
image = Image.open("sample_images/index.jpeg")
st.image(image, caption="Beyin Tümörü Tespiti", use_container_width=True)
except FileNotFoundError:
st.warning("Örnek görüntü dosyası bulunamadı.")
st.info("Kendi MR görüntünüzü yükleyerek tümör tespiti yapabilirsiniz.")
elif menu == "Hakkımızda":
st.markdown('<div class="header"><h2>Hakkımızda</h2></div>', unsafe_allow_html=True)
st.write("""
Tümör Tespit Sistemi olarak, sağlık alanında teknolojiyi kullanarak insanların hayatlarını daha sağlıklı ve güvenli hale getirmeyi amaçlıyoruz. Ekibimiz, yapay zeka ve derin öğrenme teknikleriyle gelişmiş sağlık çözümleri üretmeye odaklanmış bir grup uzman profesyonelden oluşmaktadır. Yenilikçi yaklaşımlar ve sağlam bilimsel temellerle, kanser ve diğer hastalıkların erken teşhisini mümkün kılacak teknolojiler geliştirmekteyiz.
Misyonumuz, tıbbi görüntüleme verilerini kullanarak tümörleri erken aşamalarda tespit etmek ve doğru teşhis konulmasına yardımcı olmaktır. Bu, hastaların tedaviye daha erken başlamasını ve sonuçların daha başarılı olmasını sağlar. Tümör Tespit Sistemi, doktorların tanı koyma sürecini hızlandırarak, zamanında ve doğru müdahaleler yapılmasına olanak tanır.
Yapay zeka destekli sistemimiz, sürekli olarak öğrenen ve gelişen bir yapıya sahiptir. Sistemimiz, MR, röntgen ve diğer tıbbi görüntüleri analiz ederek, tümör varlığını yüksek doğrulukla tespit eder ve görsel işaretlemeler yaparak doktorlara kolaylık sağlar. Bu sayede, sağlık profesyonelleri daha verimli çalışabilir, hastalar ise doğru ve hızlı bir şekilde tedavi süreçlerine dahil olabilirler.
Her adımda güvenlik ve gizliliğe büyük önem veriyor, hasta verilerini korumak için en yüksek güvenlik standartlarını uyguluyoruz. Kullanıcı dostu arayüzümüz sayesinde, sistemimiz her türlü sağlık kuruluşunda kolayca kullanılabilir. Sürekli olarak güncellenen ve geliştirilen bu sistem, sağlık sektöründe önemli bir devrim yaratmayı hedeflemektedir.
Vizyonumuz ise, yapay zeka teknolojileriyle sağlık hizmetlerini dönüştürerek, daha hızlı, daha doğru ve daha erişilebilir bir sağlık altyapısı oluşturmaktır. Bu sayede, her bireyin sağlık durumunun daha yakından takip edilebilmesi ve sağlık hizmetlerine erişimin daha kolay hale gelmesi için çalışıyoruz.
Sağlıklı günler dileriz.
""")
# "Örnek Analizlerimiz" sekmesi
elif menu == "Örnek Analizlerimiz":
st.markdown('<div class="header"><h2>Örnek Analizlerimiz</h2></div>', unsafe_allow_html=True)
# Check if the data directory exists
folder_path = "sample_images"
if not os.path.exists(folder_path):
st.warning("Örnek görüntüler klasörü bulunamadı.")
st.info("Kendi MR görüntünüzü yükleyerek tümör tespiti yapabilirsiniz.")
else:
# Dizin içindeki görüntü dosyalarını listeleme
try:
image_files = [f for f in os.listdir(folder_path) if f.endswith(('.jpg', '.jpeg', '.png', '.webp'))]
# İlk 20 görüntü ile sınırlama
image_files = image_files[:20]
# Görüntülerde tümör olup olmadığını kontrol etmek için sayaç
tumor_found_count = 0
non_tumor_count = 0
# Her bir görüntü dosyasını işlemek için döngü
for img_file in image_files:
file_path = os.path.join(folder_path, img_file)
# Görüntüyü açma
try:
image = Image.open(file_path)
st.image(image, caption=f"MR Görüntüsü: {img_file}", use_container_width=True)
# Görüntü analizi
image_array = np.array(image)
tumor_status, explanation, has_tumor = detect_tumor(image_array)
# Sayaçları güncelle
if has_tumor:
tumor_found_count += 1
else:
non_tumor_count += 1
# Sonuçları göster
st.markdown(f"**Sonuç: {tumor_status}**")
st.write(explanation)
# Açıklama metnini ekleyelim
st.markdown(f"### Açıklama: {img_file}")
st.write("""
Bu görüntü, beyin MR'ı üzerinde yapılan tümör tespiti analizinin bir örneğidir.
Görüntüdeki kontrast değerleri analiz edilerek tümör varlığı tahmin edilmektedir.
Bu basit bir analiz olup, gerçek tıbbi teşhis için uzman görüşü gereklidir.
""")
except Exception as e:
st.error(f"Görüntü işlenirken bir hata oluştu: {e}")
# Sonuçları yazdırma
st.write(f"Tümör Bulunan Görüntüler: {tumor_found_count}")
st.write(f"Tümör Olmayan Görüntüler: {non_tumor_count}")
except Exception as e:
st.error(f"Örnek görüntüler işlenirken bir hata oluştu: {e}")
elif menu == "Tümör Tespiti":
st.markdown('<div class="header"><h2>Tümör Tespiti</h2></div>', unsafe_allow_html=True)
# Hasta Bilgilerini Almak İçin Form
with st.form(key='patient_form'):
st.markdown('<div class="section-title">Hasta Bilgileri</div>', unsafe_allow_html=True)
name = st.text_input("Ad Soyad")
age = st.number_input("Yaş", min_value=0, max_value=120)
gender = st.selectbox("Cinsiyet", ["Erkek", "Kadın"], key="gender_selectbox")
uploaded_file = st.file_uploader("MR Görüntüsünü Yükleyin", type=["jpg", "png", "jpeg"], key="file_uploader")
submit_button = st.form_submit_button("Tümör Analizini Başlat")
if submit_button:
if uploaded_file is not None:
image = Image.open(uploaded_file)
st.image(image, caption="Yüklenen MR Görüntüsü", use_container_width=True)
# Görüntü analizi
image_array = np.array(image)
tumor_status, explanation, _ = detect_tumor(image_array)
# Sonuçları göster
st.markdown(f"**Sonuç: {tumor_status}**")
st.write(explanation)
elif menu == "Hasta Yorumları":
st.markdown('<div class="header"><h2>Hasta Yorumları</h2></div>', unsafe_allow_html=True)
# Yorumları Listeleme
st.markdown('<div class="table-container">', unsafe_allow_html=True)
st.write("""
- Hasta 1: "Bu sistem hayatımı kurtardı, teşekkürler!"
- Hasta 2: "Çok kolay ve kullanışlı."
- Hasta 3: "Hızlı sonuç ve güvenilir analiz."
""")
st.markdown('</div>', unsafe_allow_html=True)
# Yorum eklemek için form
with st.form(key='comment_form'):
st.markdown('<div class="section-title">Yeni Yorum Ekleyin</div>', unsafe_allow_html=True)
new_comment = st.text_area("Yorumunuzu Buraya Yazın", key="new_comment_area")
submit_button = st.form_submit_button("Yorum Gönder")
if submit_button and new_comment:
st.write(f"Yeni Yorum: {new_comment}")
st.write("Yorum başarıyla eklendi.")
elif menu == "Bize Ulaşın":
# Bize Ulaşın sayfası içeriği
st.markdown('<div class="header"><h2>Bize Ulaşın</h2></div>', unsafe_allow_html=True)
# İletişim bilgilerini tablo şeklinde yazdırma
contact_info = {
"Bilgi": ["Email", "Telefon", "Adres"],
"Değer": ["[email protected]", "+90 555 555 55 55", "İstanbul, Türkiye"]
}
# DataFrame oluşturuluyor
contact_df = pd.DataFrame(contact_info)
# Tabloyu Streamlit üzerinde gösterme
st.markdown('<div class="table-container">', unsafe_allow_html=True)
st.table(contact_df) # Tabloyu göster
st.markdown('</div>', unsafe_allow_html=True)
# Doldurulabilir iletişim formu
with st.form(key="contact_form"):
st.subheader("İletişim Formu")
# Kullanıcıdan veri alınması
name = st.text_input("Adınız Soyadınız")
email = st.text_input("E-posta Adresiniz")
subject = st.text_input("Konu")
message = st.text_area("Mesajınız")
# Gönder butonu
submit_button = st.form_submit_button("Gönder")
if submit_button:
# Form gönderildiğinde kullanıcıya onay mesajı gösterme
st.success(f"Teşekkür ederiz {name}, mesajınız başarıyla gönderildi!")
# Burada form verilerini bir veritabanına veya e-posta sistemine yönlendirebilirsiniz
# Footer
st.markdown('<div class="footer">© 2024 Tümör Tespit Sistemi. Tüm haklar saklıdır. </div>', unsafe_allow_html=True)
|