Bu repo, Python + OpenCV + NumPy ağırlıklı olarak hazırlanmış, temel ve orta seviye bilgisayarlı görme / görüntü işleme uygulamalarını içeren bir çalışma koleksiyonuudur.
Ayrıca bazı örneklerde Gradio kullanılarak küçük web arayüzleri oluşturulmuştur.
Repo; görüntü okuma/yazma, piksel manipülasyonu, kırpma, yeniden boyutlandırma, döndürme, renk uzayı/kanal işlemleri, webcam akışı ve daha ileri örnekler olarak panorama, özellik benzerliği, fraktal/geometrik desen üretimi gibi konuları kapsar.
- Python 3.8+
- OpenCV
- NumPy
- (Bazı örnekler için) Gradio
requirements.txt:
- gradio
- opencv-python
- numpy
Kurulum:
pip install -r requirements.txt- Kök dizin (root): Çeşitli “uygulama*.py / u*.py” örnekleri ve örnek görseller (jpg/png).
zoom_kodlar/: Daha kapsamlı örneklerin toplandığı klasör.haarcascade_frontalface_default.xml: Yüz tespiti gibi Haar Cascade örnekleri için.data/: (içeriği ayrıca listelenmedi; bu klasör altında ek veri/görseller olabilir)
src/: Şu an görünen tek içerikreadme.md(boş/placeholder gibi duruyor).
Not: Repoda çok sayıda örnek görsel (elma, araçlar, manzara/panorama vb.) bulunuyor. Bu görseller, ilgili script’lerde test verisi olarak kullanılıyor.
Aşağıdaki açıklamalar dosya adlarından ve repodaki genel akıştan yola çıkarak hazırlanmıştır. İsterseniz her bir .py dosyasının içeriğini de tek tek okuyup README’ye “kod seviyesinde” daha net açıklamalar ekleyebilirim.
uygulama1_openCV_versiyon.py- OpenCV’nin yüklü olup olmadığını ve sürüm bilgisini kontrol etmeye yönelik başlangıç örneği.
-
uygulama2_gorsel_islemleri.py- Görselin diskten okunması, ekranda gösterilmesi, temel I/O işlemleri.
-
u2_gorsel_is_dilimleme.py- Görsel üzerinde “dilimleme/slicing” mantığı: NumPy indeksleme ile belirli bölgenin alınması gibi ROI (Region of Interest) yaklaşımı.
-
Uygulama3 Görsel hakkında bilgi alma.py- Bir görselin temel özellikleri: boyut (width/height), kanal sayısı, veri tipi gibi bilgileri inceleme.
-
u3_gorsel_hknd_bilgi_detayli.py- Görsel bilgilerini daha detaylı gösteren/raporlayan sürüm.
uygulama 4 farklı okuma modları.pyveu4_farkli_okuma_mod.py- OpenCV’de
imreadokuma modları (renkli okuma, grayscale okuma vb.) ve farkların gözlenmesi.
- OpenCV’de
uygulama 5 sayıalrdan görüntüye.py- NumPy ile matris oluşturup bunu görüntü gibi görselleştirme; piksel değerleriyle görüntü üretmenin temeli.
-
uygulama 6 renk uzayı dönüşümü.py- RGB/BGR → Gray gibi temel dönüşümler;
cvtColorkullanımına giriş.
- RGB/BGR → Gray gibi temel dönüşümler;
-
(Ek örnekler)
u6_kirmizi_elma.py,u6_araba.py,u6_kizil_sac.py- Belirli renklerin (kırmızı tonları vb.) maskeleme/ayrıştırma veya renge dayalı manipülasyon örnekleri.
-
u6_RenkDegistirmeGradio.py- Renk dönüşümü/renk değiştirme mantığını Gradio arayüzü ile kullanıcıdan görsel alıp çıktı üretme şeklinde sunan uygulama.
uygulama 7 kırmızı yeşil elma.py- Renk temelli segmentasyon/mask yaklaşımıyla kırmızı/yeşil nesneleri ayırma mantığı.
uygulama 8 araba renk dönüşümü.py- Araç görseli üzerinde belirli renklerin dönüştürülmesi/kanal işlemleri.
uygulama 9_dosya_uzanti.py- Dosya uzantısı bulma/işleme (string/path işlemleri) gibi yardımcı bir örnek.
uygulama 10 kameradana görüntü akışı.pyVideoCaptureile webcam’den canlı görüntü alma ve gösterme.
uygulama11 piksellere erişim ve manipülasyon.py- Piksel değerlerine doğrudan erişim, belirli bölgeleri değiştirme, basit manipülasyonlar.
uygulama 12 gorsel kirpma.py- ROI seçimi ve kırpma işlemi (NumPy slicing / OpenCV ile).
-
uygulama 13 görüntüyü yeniden boyutlandırma.pyresizeile ölçekleme, boyut değiştirme.
-
uygulama 14 görüntüyü yenidnen boyutlandırma 2.py- Yeniden boyutlandırmanın alternatif yöntem/parametrelerle ikinci örneği.
uygulama 15 görseli dondurme.py- Görsel döndürme (affine transform / rotate mantığı).
zoom_kodlar altında “u1...u23” şeklinde daha fazla örnek var. Görünen dosya adlarına göre içerikler:
u1opencv_ver.py: OpenCV sürüm kontrolüu2gorsel_islemleri.py: Temel görsel işlemleriu3gorselhknbilgialma.py: Görsel hakkında bilgiu4farkli_okuma_modlari.py,u4v2_nostalji.py: Okuma modları + nostalji/filtre benzeri efekt denemesiu5kirmizielma.py: Kırmızı nesne/renk tabanlı maskelemeu6_renk_kanallari.py: Renk kanallarını ayırma/incelemeu7_dosya_uzantisi.py: Dosya uzantısı işlemleriu8_video_renkkanal.py: Video üzerinde kanal/renk işlemleriu9_web_cam.py,u10_webcam_sb.py: Webcam akışı örnekleriu11_web_renk_kanali.py: Webcam + renk kanalı/maskelemeu12_Gradio_filtre_uyg.py,u12v2_gradio_fdilter.py: Gradio ile filtre uygulamasıu13piksel_man.py: Piksel manipülasyonuu14_gorsel_kirpma.py: Kırpmau15_goruntu_boy.py: Yeniden boyutlandırmau16_gorsel_cevirme.py: Görsel çevirme/flipu17_cizgi_metin.py: Görsele çizgi/metin çizmeu18_geometrik_Sekiller.py,u19_geometrik_oruntu.py: Geometrik şekiller/desen üretimiu20_fraktal.py: Fraktal üretimiu21_ozellik_benzerlik_calismasi.py: Özellik çıkarımı/benzerlik (feature matching)u22_panorama.py: Panorama oluşturma (muhtemelen birden fazla görüntü birleştirme)u23_reg_of_in.py: ROI / region of interest temalı ileri bir örnek olabilirhaarcascade_frontalface_default.xml: Haar Cascade ile yüz tespiti gibi model dosyası
Genel olarak script’ler doğrudan çalıştırılabilir:
python uygulama12_gorsel_kirpma.pyGradio içerenlerde:
python u6_RenkDegistirmeGradio.pyçalıştıktan sonra terminalde verilen yerel URL üzerinden arayüze erişilir.
Bu proje MIT lisansı ile lisanslanmıştır. Ayrıntı: LICENSE
- Dr. Murat Altun — https://github.com/DrMuratAltun