[Diedit] Begini caranya.
Langkah-langkah: 1. Mengisolasi Bagian Road Divider.
Kemudian, menggunakan Houghlines, cari tahu garis terpanjang di Image. Cari tahu titik-titik ekstrem yang melintasi batas gambar. Anda mendapat poin Quadilateral. Saya melewatkan bagian ini dengan Secara Manual Memilih mereka. Dalam kasus saya, lebar jalan di atas gambar adalah 10, dan di bawah adalah 60.
Sekarang, untuk Tujuan, kita harus Gambar sehingga Divider Quadilateral memiliki lebar seragam 60, jadi kita menyimpan di array lain titik baru, yang memiliki titik bawah yang sama, tetapi titik atas dimodifikasi karena mereka membentuk persegi panjang dengan ketinggian sama dengan gambar (atau lebih besar, Anda dapat menyesuaikan sesuai keinginan Anda setelah menjalankannya sekali dan melihat hasilnya), tetapi lebar 60. Ingat, kami mengubah gambar kami sedemikian rupa sehingga pembagi masuk ke dalam Area Persegi Panjang ini. Gambar akan berubah secara otomatis.
Sekarang, gunakan
Mat TransformMat = getPerspectiveTransform(ipPts, opPts);
dari pembuka pada Poin kuadranal awal dan tujuan, kami mendapatkan Matriks Transform, yang kami terapkan pada Gambar Uji kami.
warpPerspective(ipImg, opImg, TransformMat, ipImg.size());
Anda akan melihat banyak Area Dipotong agar sesuai dengan Output dalam Ukuran InputImage. Namun, Anda akan melihat bahwa Gambar Diubah untuk mendapatkan Pembagi paralel, seperti yang kami harapkan. Dengan melakukan beberapa Terjemahan dan Barang, dan mengambil Ukuran Gambar Output yang lebih besar, Anda akan mendapatkan ini. Kita tidak pernah bisa mendapatkan Output Image yang dibungkus dengan sempurna, karena ukurannya bisa sangat besar. Tapi kami akan mencapai beberapa kendala yang akan memenuhi tugas kami. Inilah gambar Terakhir: