Sudoku karesindeki dışbükeylik kusurları nasıl giderilir?

| | | | | | | | | |

Eğlenceli bir proje yapıyordum: OpenCV kullanarak bir giriş görüntüsünden Sudoku çözme (Google gözlüklerinde olduğu gibi). Ve görevi tamamladım, ancak sonunda küçük bir problem buldum ve bunun için buraya geldim.

Programlamayı OpenCV 2.3.1'in Python API'sini kullanarak yaptım.

Aşağıda benim yaptığım şuydu :

  1. Görüntüyü oku
  2. Konturları bul
  3. Maksimum alana sahip olanı seç (ve aynı zamanda kareye biraz eşdeğer) .
  4. Köşe noktalarını bulun.

    ör. aşağıda verilmiştir:

    görüntü açıklamasını buraya girin

    (Burada yeşil çizginin Sudoku'nun gerçek sınırıyla doğru bir şekilde örtüştüğüne dikkat edin, böylece Sudoku doğru bir şekilde bükülebilir. Sonraki resmi kontrol et)

  5. resmi tam kareye çevir

    örn. resim:

    görüntü açıklamasını buraya girin

  6. OCR gerçekleştirin ( bunun için kullandığım yöntemi kullandım) Basit Rakam Tanıma içinde verilmiştir OpenCV-Python'da ition OCR )

Ve yöntem iyi çalıştı.

Sorun:

p>

Bu resme bakın.

Bu resimde 4. adımın gerçekleştirilmesi aşağıdaki sonucu verir:

resim açıklamasını buraya girin

Çizilen kırmızı çizgi, sudoku sınırının gerçek taslağı olan orijinal konturdur.

Çizilen yeşil çizgi, çarpık görüntünün ana hatları.

Tabii ki, sudoku'nun üst kenarındaki yeşil çizgi ile kırmızı çizgi arasında fark vardır. Yani çarpıtma sırasında Sudoku'nun orijinal sınırını alamıyorum.

Sorum :

Görüntüyü doğru sınırda nasıl çarpıtabilirim? Sudoku, yani kırmızı çizgi VEYA kırmızı çizgi ile yeşil çizgi arasındaki farkı nasıl kaldırabilirim? OpenCV'de bunun için herhangi bir yöntem var mı?