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""" """, 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('

Hoş Geldiniz!

', 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('

Hakkımızda

', 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('

Örnek Analizlerimiz

', 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('

Tümör Tespiti

', unsafe_allow_html=True) # Hasta Bilgilerini Almak İçin Form with st.form(key='patient_form'): st.markdown('
Hasta Bilgileri
', 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('

Hasta Yorumları

', unsafe_allow_html=True) # Yorumları Listeleme st.markdown('
', 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('
', unsafe_allow_html=True) # Yorum eklemek için form with st.form(key='comment_form'): st.markdown('
Yeni Yorum Ekleyin
', 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('

Bize Ulaşın

', unsafe_allow_html=True) # İletişim bilgilerini tablo şeklinde yazdırma contact_info = { "Bilgi": ["Email", "Telefon", "Adres"], "Değer": ["info@tumordetection.com", "+90 555 555 55 55", "İstanbul, Türkiye"] } # DataFrame oluşturuluyor contact_df = pd.DataFrame(contact_info) # Tabloyu Streamlit üzerinde gösterme st.markdown('
', unsafe_allow_html=True) st.table(contact_df) # Tabloyu göster st.markdown('
', 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('', unsafe_allow_html=True)