Mari kita mulai dengan apa itu OpenCV. OpenCV atau Open Source Computer Vision Library adalah pustaka sumber terbuka dan gratis untuk digunakan di bawah Apache 2. 0 lisensi. OpenCV terutama digunakan untuk visi komputer, pemrosesan gambar, dan tugas pembelajaran mesin. Perpustakaan ini awalnya dikembangkan oleh Intel pada tahun 1999. OpenCV mendukung berbagai bahasa seperti C++, Python, Java, dll. , dan dapat digunakan di Windows, Linux, Android, dan Mac OS. Awalnya ditulis dalam C++ dan semua perkembangan barunya terjadi di C++. Python, Java, MATLAB digunakan sebagai pembungkus untuk implementasi OpenCV C++ asli Show
Kualitas terbaik dari OpenCV C++ API dan Python digabungkan untuk membentuk API Python untuk OpenCV yang dikenal sebagai OpenCV-Python. Meskipun Python lebih lambat dari C/C++, Python dapat dengan mudah diperluas dengan C/C++ yang memungkinkan kita menulis kode lebih cepat dan lebih efisien. OpenCV-Python dapat diintegrasikan dengan berbagai pustaka Python seperti Numpy untuk mengidentifikasi pola dan struktur gambar untuk dianalisis Deteksi objek, pengenalan wajah, estimasi gerakan ego, deteksi gerakan, segmentasi, dll. adalah beberapa aplikasi utama OpenCV. Pustaka juga mencakup peningkatan, pohon keputusan, tetangga terdekat k, hutan acak, mesin vektor dukungan, jaringan saraf dalam, dll. Mengubah Ukuran GambarMengubah ukuran gambar berarti mengubah ukuran gambar atau mengubah dimensi asli, lebar, tinggi, atau keduanya Mengubah ukuran gambar melibatkan
Fungsi Ubah Ukuran Sintaksis resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) di mana, Deskripsi metode mengubah ukuran variabel
Faktor penskalaan, juga dikenal sebagai faktor skala, adalah angka yang menskalakan atau mengalikan kuantitas, dalam hal ini, lebar dan tinggi gambar. Ini membantu menjaga rasio aspek dan kualitas tampilan. Hasilnya, saat Anda menaikkan atau menurunkan skala gambar, tampilannya tidak terdistorsi Dalam panduan ini, Anda mempelajari apa arti pengubahan ukuran gambar, dan bagaimana melakukannya menggunakan OpenCV dengan Python. Kami akan tampil
Juga, kita akan berbicara tentang faktor penskalaan dan interpolasi Mengubah Ukuran Gambar dengan OpenCV + PythonSaat mengubah ukuran gambar, penting untuk mengetahui rasio aspek asli gambar. Ini karena biasanya, Anda ingin membuat gambar keluaran terlihat sama kecuali ukurannya Saat mengecilkan gambar, piksel perlu disampling ulang. Ini karena saat ukurannya menyusut, jumlah piksel tidak bisa tetap sama. Karena itu Anda harus "menghapus kelebihan piksel" Dan saat memperbesar gambar, program harus menambahkan piksel baru. Jika tidak, peningkatan skala tidak dapat dilakukan karena piksel tidak cukup untuk memperbesar gambar Saat menggunakan OpenCV, ada beberapa teknik yang dapat Anda gunakan untuk mengubah ukuran gambar. Teknik ini membuat gambar terlihat sebagus mungkin saat ukurannya berubah Sebelum memodifikasi gambar, Anda perlu mempelajari cara membaca gambar ke program terlebih dahulu Membaca Gambar dengan OpenCVUntuk membaca gambar menggunakan OpenCV, Anda perlu mengimpor pustaka OpenCV dan menggunakan fungsi imread() Fungsi imread() mengambil jalur gambar sebagai argumen Jika skrip Python Anda berada di file yang sama dengan gambar, Anda hanya perlu menentukan nama gambar sebagai jalurnya Dalam panduan ini, kami bekerja dengan gambar berikut gambar. jpeg Misalnya, jika skrip Anda berada di folder yang sama dengan “image. jpeg" Anda dapat membaca gambar ke dalam program Anda dengan import cv2 img = cv2.imread('image.jpeg')_ Sekarang setelah Anda membaca gambarnya, mari ubah ukurannya Ubah ukuran Gambar dengan cv2. mengubah ukuran() FungsiUntuk mengubah ukuran gambar dengan OpenCV, gunakan cv2. mengubah ukuran() fungsi. Dibutuhkan gambar asli, memodifikasinya, dan mengembalikan gambar baru Sintaks cv2. fungsi resize() adalah cv2.resize(src, dsize, fx, fy, interpolation) Di mana
Sederhananya, kita hanya akan menggunakan dua parameter ini terlebih dahulu
Dengan kata lain, kita akan memanggil cv2. resize() dengan sintaks berikut cv2.resize(src, (new_width, new_height)) (new_width, new_height) adalah parameter ukuran dari sintaks asli Mari kita mulai dengan memperkecil gambar kita Menurunkan skala dengan OpenCVSalah satu cara untuk mengubah ukuran gambar Anda adalah dengan memperkecilnya. Ini berarti Anda mempertahankan rasio aspek gambar tetapi memperkecil gambar Untuk melakukannya, tentukan faktor penskalaan yang kurang dari 1 Kemudian gandakan lebar dan tinggi gambar asli dengan faktor penskalaan Terakhir, panggil cv2. resize() fungsi dengan lebar dan tinggi yang diturunkan Misalnya, mari perkecil gambar menjadi 25% dari ukuran aslinya dan tampilkan menggunakan fungsi imshow() import cv2 img = cv2.imread('image.jpeg') p = 0.25 new_width = int(img.shape[1] * p) new_height = int(img.shape[0] * p) resized = cv2.resize(img, (new_width, new_height)) cv2.imshow(f"Elephants at scale {p}", resized) # Hide the image window with any key press cv2.waitKey() cv2.destroyAllWindows()_ Keluaran Lalu mari kita lihat cara meningkatkan gambar Peningkatan skala dengan OpenCVCara lain untuk mengubah ukuran gambar Anda adalah dengan meningkatkannya. Ini berarti Anda mempertahankan rasio aspek gambar tetapi memperbesar gambar Untuk melakukannya, tentukan faktor penskalaan yang lebih besar dari 1 Kemudian gandakan lebar dan tinggi gambar asli dengan faktor penskalaan Terakhir, panggil cv2. resize() fungsi dengan lebar dan tinggi yang ditingkatkan Misalnya, mari skala gambar hingga 150% dari gambar asli import cv2 img = cv2.imread('image.jpeg') p = 1.5 new_width = int(img.shape[1] * p) new_height = int(img.shape[0] * p) resized = cv2.resize(img, (new_width, new_height)) cv2.imshow(f"Elephants at scale {p}", resized) cv2.waitKey() cv2.destroyAllWindows() Keluaran Sekarang Anda mengerti cara memperbesar dan memperkecil gambar menggunakan OpenCV dan Python Selanjutnya, mari kita lihat cara mengubah ukuran gambar dengan hanya mengubah lebar atau tinggi gambar Ubah Lebar SajaJika Anda ingin mengubah lebar gambar, panggil cv2. resize() dengan tinggi asli dan lebar khusus Sebagai contoh import cv2 img = cv2.imread('image.jpeg') new_width = 400 resized = cv2.resize(img, (new_width, img.shape[0])) cv2.imshow("Elephants", resized) cv2.waitKey() cv2.destroyAllWindows()_ Keluaran Terakhir, mari kita lihat bagaimana Anda dapat mengubah tinggi gambar saja Ubah Ketinggian SajaJika Anda ingin mengubah tinggi gambar, panggil cv2. resize() dengan lebar asli dan tinggi khusus Sebagai contoh import cv2 img = cv2.imread('image.jpeg') new_height = 300 resized = cv2.resize(img, (img.shape[1], new_height)) cv2.imshow("Elephants", resized) cv2.waitKey() cv2.destroyAllWindows() Keluaran Luar biasa. Sekarang Anda memahami dasar-dasar mengubah ukuran gambar menggunakan OpenCV dan Python Selanjutnya, mari kita lihat pendekatan lain untuk menskalakan gambar menggunakan faktor penskalaan Faktor PenskalaanSebelumnya Anda telah mempelajari cara menskalakan gambar dengan menentukan koefisien penskalaan sebagai variabel terpisah dan dengan mengalikan dimensi asli dengannya Tapi ada cara alternatif, yang mungkin sedikit lebih estetis dalam hal kualitas kode Sintaks untuk cv2. fungsi resize() mencakup dua parameter opsional fx dan fy. Ini adalah faktor penskalaan dalam arah x dan y cv2.resize(src, dsize, fx, fy, interpolation) Alih-alih menentukan ukuran baru, Anda dapat menggunakan fx dan fy sebagai faktor penskalaan Misalnya, untuk memperkecil ukuran gambar hingga 25% dari ukuran aslinya, Anda dapat menentukan faktor penskalaan seperti sebelumnya. Namun alih-alih mengalikan dimensi gambar asli dengannya, Anda dapat menyetel faktor penskalaan ke fx dan fy secara langsung Jika Anda melakukan ini, atur argumen dsize Tidak ada import cv2 img = cv2.imread('image.jpeg') p = 0.25 resized = cv2.resize(img, None, fx=p, fy=p) cv2.imshow("Down-Scaled Image", resized) # Hide the image window with any key press cv2.waitKey() cv2.destroyAllWindows()_ Keluaran Metode Interpolasi OpenCVTopik terakhir yang akan kita bahas dalam tutorial ini adalah metode interpolasi Saat memperbesar gambar, diperlukan interpolasi Ini karena jika tidak, program perlu menarik piksel baru begitu saja saat memperbesar gambar Seperti yang mungkin Anda ingat, sintaks cv2. resize() menyertakan interpolasi parameter opsional cv2.resize(src, dsize, fx, fy, interpolation) Metode interpolasi ini digunakan untuk mengubah ukuran gambar untuk mempertahankan kualitas gambar Setiap metode interpolasi memiliki hasil imbang dan kontra sendiri. Seseorang bisa cepat tetapi menghasilkan hasil yang buruk. Yang lain mungkin lambat tetapi menghasilkan hasil yang lebih berkualitas Anda harus memilih metode interpolasi berdasarkan apa yang Anda butuhkan. Jika Anda ingin memperbesar banyak gambar secepat mungkin, bersiaplah untuk mengorbankan kualitas. Jika ingin menjaga kualitas, bersiaplah untuk kehilangan efisiensi Berikut adalah metode interpolasi yang disediakan oleh OpenCV
Mari kita bandingkan hasil dari setiap jenis interpolasi. Gambar-gambar ini dirender dengan kode berikut yang menskalakan gambar asli hingga 200% import cv2 img = cv2.imread('image.jpeg')_1 Jangan ragu untuk mengomentari/menghapus komentar pada baris berdasarkan metode interpolasi mana yang ingin Anda gunakan INTER_NEARESTINTER_CUBICINTER_LINEARINTER_AREAKarena gambarnya kecil di sini, tidak ada perbedaan yang jelas. Namun, perbedaannya ada di sana Misalnya, gambar pertama jelas lebih tajam dari gambar terakhir Agar tetap dalam cakupan, kita tidak akan berbicara tentang metode interpolasi lebih lanjut Untuk melihat perbedaan metode interpolasi lebih jelas, silakan cek artikel ini KesimpulanHari ini Anda belajar cara mengubah ukuran gambar menggunakan OpenCV dan Python Untuk rekap
Untuk menyesuaikan kualitas gambar keluaran, coba/pelajari berbagai metode interpolasi yang tersedia di OpenCV Bagaimana cara mengubah ukuran gambar dengan tetap mempertahankan rasio aspek gambar di OpenCV?Menurunkan skala dengan OpenCV
. Ini berarti Anda mempertahankan rasio aspek gambar tetapi memperkecil gambar. Untuk melakukannya, tentukan faktor penskalaan yang kurang dari 1 . Kemudian gandakan lebar dan tinggi gambar asli dengan faktor penskalaan.
Bagaimana cara mengubah ukuran gambar dengan rasio aspek di Python OpenCV?Untuk mengubah ukuran gambar dengan Python, Anda dapat menggunakan cv2. resize() fungsi pustaka OpenCV cv2 . Mengubah ukuran, secara default, hanya mengubah lebar dan tinggi gambar. Rasio aspek dapat dipertahankan atau tidak, berdasarkan kebutuhan.
Bagaimana cara mengubah ukuran gambar tanpa kehilangan rasio aspek dengan Python?Cara Mengubah Ukuran Gambar dalam Rasio Aspek Tetap dengan Pustaka PIL Python . Garis pertama. Tentukan angka tetap untuk membuat rasio Baris kedua. Buka gambar Baris ketiga. Buat persentase tinggi sesuai dengan nilai tetap Anda Baris keempat. Buat lebar gambar dengan mengalikannya dengan nilai tinggi proporsional Bagaimana Anda menjaga rasio aspek saat gambar diubah ukurannya?Contoh ulang gambar . Pilih Gambar > Ubah Ukuran > Ukuran Gambar Pilih Resample Image, dan pilih metode interpolasi. Tetangga terdekat. . Untuk mempertahankan rasio aspek saat ini, pilih Batasi Proporsi. . Di Dimensi Piksel, masukkan nilai untuk Lebar dan Tinggi. . Klik OK untuk mengubah dimensi piksel dan sampel ulang gambar |