Perspektif düzeltme matematik temelinde homografi (projective transform) matrisi yatar. Bu dönüşüm, düzlemden düzleme projeksiyon ilişkisini ifade eder ve mimari fotoğraf, belge tarama, panorama birleştirme gibi bağlamlarda temel rol üstlenir. Homografi, iki boyutlu projektif uzayda (P²) noktaları eşleştiren ters çevrilebilir lineer dönüşümdür. Homojen koordinatlarda: [x'] = H × [x] [y'] [y] [w'] [w] H, 3×3 matristir ve 8 serbestlik derecesine sahiptir (9 eleman eksi ölçek belirsizliği). Perspektif düzeltme matematik açısından bu 8 serbestlik derecesini belirlemek için minimum 4 eşleşen nokta çifti gereklidir. Direkt Lineer Dönüşüm (DLT) algoritması H'yi hesaplar: - Her nokta eşleşmesi iki lineer denklem verir. - 4 çift → 8 denklem → 9 bilinmeyenli homojen sistem → SVD çözümü. - Sayısal kararlılık için koordinatlar normalize edilmeli (centroid = 0, ortalama uzaklık = √2). Homografi dönüşümünün pratik uygulaması: ```python import cv2 import numpy as np src_pts = np.float32([[x1,y1],[x2,y2],[x3,y3],[x4,y4]]) dst_pts = np.float32([[0,0],[w,0],[w,h],[0,h]]) H, _ = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC) warped = cv2.warpPerspective(img, H, (w, h)) ``` RANSAC burada çok önemlidir: bozuk veya yanlış eşleşme noktaları (outlier) olduğunda DLT başarısız olur. RANSAC, minimum nokta alt kümesini rastgele seçerek H tahmini yapar; tüm noktaların inlier sayısını ölçer ve en iyi H'yi seçer. Optik distorsyonun perspektif düzeltmeyle farkı kritik bir ayrımdır: - **Perspektif distorsyon:** Paralel çizgiler, kamera kısa mesafeden eğimli yöneltildiğinde birleşir. Homografi ile tam düzeltilir. - **Radyal distorsyon (barrel/pincushion):** Lens geometrisinden kaynaklı doğrusal olmayan bozulma. Önce kamera kalibrasyonu (cv2.calibrateCamera) ile giderilmeli; ardından perspektif düzeltme matematik ile homografi uygulanmalıdır. Sıra tersine alınırsa düzeltme hatalı kalır. Architectural distortion düzeltmesinde tilt-shift lensin sağladığı optik perspektif kontrolü, post-işlem homografi ile benzer sonuç verse de görüntü alanı ve çözünürlük kaybı açısından farklı tradeoff'lar sunar.