Problem
Fındığın doğal yüzey çizgisiyle gerçek bir çatlağı ayırmak, yalnızca koyu pikselleri seçmekten daha zor. Bu çalışmada yüzey kusurlarını farklı görsel özelliklerine göre ele aldık: çatlakta kenar sürekliliği, delikte koyu merkez, baskıda parlaklık farkı, kesikte kontur bozulması. İki kişilik ekiple MVTec AD Hazelnut üzerinde dört ayrı OpenCV pipeline’ı geliştirdik.
Bu sürümde kullanıcı kusur türünü seçiyor; program seçilen türe ait görüntü işleme akışını çalıştırıyor. Bilinmeyen kusur türünü otomatik sınıflandıran bir model değil.
Nesne maskesi ve algoritmalar
Otsu threshold ile fındık arka plandan ayrılıyor. Morfolojik closing/opening ve en büyük bağlı bileşen seçimi maskeyi temizliyor. Kontur doldurma ve erozyonla iç ROI oluşturularak kenar kaynaklı yanlış adaylar azaltılıyor.
- Crack: bilateral filter, Canny kenarları ve morfolojik closing.
- Hole: koyu merkez eşiği ile Top-Hat çıktısının birleştirilmesi.
- Print: Gaussian blur, Top-Hat, yoğunluk istatistikleri ve bağlı bileşen alan filtresi.
- Cut: dolu/orijinal maske farkı ile morfolojik gradient.

Kusur maskesindeki alan 200 pikseli aştığında görüntü kusurlu olarak işaretleniyor. Eşikler ve kernel boyutları merkezi config.py dosyasında; segmentasyon, tespit ve görselleştirme ayrı modüllerde tutuluyor.
Değerlendirme ve sınırlar
Rapor çatlak, delik, baskı ve kesik örnekleri için nitel sonuçlar sunuyor. Ancak bağımsız bir IoU/Dice veya precision/recall benchmark’ı yok. Ana akışta good seçeneği doğrudan boş maske üretiyor; bu yüzden bu seçenekten yanlış pozitif oranı çıkarılamaz.
Tür seçimini kaldıran ortak bir tespit hattı kurmak ve bütün görüntüleri ground-truth maskeleriyle değerlendirmek sonraki adım. Sabit eşikler, düşük kontrast ve farklı aydınlatmada ayrıca sınanmalı.
Sonuç
Dört kusur türü için orijinal görüntü, nesne maskesi, kusur maskesi ve overlay çıktıları üretildi. Proje, klasik segmentasyon ve morfolojik işlemlerin hangi görsel özellikleri yakaladığını ara adımlarla göstermeye odaklanıyor.
