Bu projede bir printed circuit board (PCB) kontrol sistemi geliştirilmiştir. Amaç, belirli bir referans görüntü kullanarak test görüntülerindeki hataları tespit etmektir. Hatalı bölgeler işaretlenecek ve sonuçlar kaydedilecektir.
- Python
- OpenCV
- NumPy
Projede, görüntüleri hizalamak için ORB (Oriented FAST and Rotated BRIEF) özelliği kullanılmıştır. Bu algoritma, görüntüler arasındaki anahtar noktaları ve açıklayıcıları belirler.
- Özellik Algılama: ORB algoritması kullanılarak, görüntüdeki önemli anahtar noktalar ve açıklayıcılar bulunur.
- Özellik Eşleme: Brute-force eşleyici (BFMatcher) ile açıklayıcılar karşılaştırılır ve en iyi eşleşmeler seçilir.
- Eşleşme Kontrolü: Eğer eşleşme sayısı belirli bir eşiğin altındaysa işlem atlanır.
Referans ve test görüntüleri arasındaki dönüşümü sağlamak için homografi matrisi hesaplanır. Bu işlem için RANSAC (Random Sample Consensus) yöntemi kullanılır.
- Noktaların Seçimi: İyi eşleşmiş olan 10 özellik noktası seçilir.
- Homografi Matrisi Hesaplama:
cv2.findHomographyfonksiyonu kullanılarak, iki görüntü arasındaki dönüşüm matrisi hesaplanır.
Hesaplanan homografi matrisi ile test görüntüsü, referans görüntüsüyle hizalanır. Bu işlem, ölçekleme, döndürme ve kaydırma gibi geometrik dönüşümleri içerir.
Referans görüntüsü ile hizalanan test görüntüsü arasındaki farklar hesaplanır. Bu farklar, kusurları tespit etmek için kullanılır.
- Piksel Bazında Fark Hesaplama:
cv2.absdifffonksiyonu ile iki görüntü arasındaki fark hesaplanır. - Eşikleme: Küçük farklılıklar yok edilir ve büyük farklar kusur olarak kabul edilir.
- Kontur Analizi: Kusurların büyüklüğü ölçülür ve yalnızca büyük kusurlar dikkate alınır.
Bu projeyi çalıştırabilmek için aşağıdaki adımları takip edebilirsiniz:
- Python 3.x
- OpenCV
- NumPy
- Depoyu klonlayın:
git clone https://github.com/FaruksImageProcessing/PCB-Defect-Detection-and-Alignment-using-ORB-and-Homography.git