Dasar manipulasi gambar di OpenCV dan Python ini mencakup bagaimana kita menerapkan teknik Resizing, cropping dan rotating pada gambar.
Pada tulisan ini saya masih menggunakan Python versi 3.6.0, OpenCV versi 3.2.0. Saya asumsikan kit telah menginstal Python pada komputer kita, dan kita telah mengetahui dasar pemograman Python. Silahkan baca tulisan saya sebelumnya jika membutuhkan tutorial tentang cara Install OpenCV untuk Python.
Sebelum kita menlanjutkan lebih jauh, kita ingat kembali tentang Core Operations dalam OpenCV untuk mengolah gambar. Operasi ini terdiri dari membaca gambar, menampilkan gambar dan menyimpan gambar.
1. Membaca Gambar
Untuk membaca gambar dalam OpenCV menggunakan fungsi cv2.imread()
dimana parameter pertama adalah nama file gambar lengkap dengan ekstensinya. Sebagai contoh :
1 2 3 4 5 |
import cv2 img = cv2.imread('foo.jpg') # Opsional cv2.waitKey(0) cv2.destroyAllWindows() |
Fungsi cv2.waitkey(0) adalah untuk mempertahanakan window agar tetap menampilkan gambar. Sedangkan fungsi cv2.destroyAllWindows() adalah untuk menutup window lain yang sedang terbuka.
2. Menampilkan Gambar
Menampilkan gambar dalam OpenCV menggunakan fungsi cv2.imshow()
dengan parameter pertama adalah nama window untuk menampilkan gambar dan parameter kedua adalah gambar itu sendiri. Contoh :
1 2 3 |
import cv2 img = cv2.imread('foo.jpg') cv2.imshow('Menampilkan Gambar', img) |
3. Menulis / Menyimpan Gambar
Untuk menulis / menyimpan gambar dalam OpenCV menggunakan fungsi cv2.imwrite()
dimana parameter pertama adalah nama file baru yang akan kita simpan dan parameter kedua adalah sumber gambar itu sendiri. Contoh :
1 2 3 |
import cv2 img = cv2.imread('foo.jpg') cv2.imwrite('bar.jpg', img) |
Untuk selengkapnya tentang Core Image Operations OpenCV silahkan baca didokumentasi OpenCV.
Oke, kembali ke topik awal mengenai dasar manipulasi gambar di OpenCV dan Python. Seperti yang telah dijelaskan sebelumnya dalam artikel ini kita akan mempelajari tentang bagaimana kita menerapkan teknik Resizing, cropping dan rotating pada gambar.
Pertama mari coba baca sumber gambar kita dan menampilkannya dengan fungsi yang telah dijelaskan sebelumnya.
1 2 3 4 5 6 7 |
import cv2 img = cv2.imread('foo.jpg') cv2.imshow('Foo Window', img) cv2.waitKey(0) cv2.destroyAllWindows() |

Membaca dan Menampilkan Gambar OpenCV
Untuk selanjutnya kita akan menggunakan gambar diatas dalam tulisan ini. Jalankan perintah print(img.shape) untuk menampilkan dimensi dari sumber gambar kita. Perintah tersebut akan menghasilkan keluaran (675, 900, 3) dimana 675 adalah lebar dan 900 adalah tinggi dalam ukuran pixel sedangan 3 merupakan channel gambar (RGB) atau bisa diartikan bahwa gambar tersebut mempunyai 675 rows dan 900 columns.
Perlu diketahui jika kita membaca gambar dalam bentuk grayscale keluaran yang dihasilkan hanya rows dan columns. Jadi perintah img.shape juga bisa diaplikasikan untuk melihat apakah gambar tersebut grayscale atau gambar berwarna.
Image Resizing OpenCV
Sebelumnya kita telah mendapatkan lebar gambar kita dengan fungsi img.shape yaitu 900 pixel. Mari kita ubah ukuran gambar menjadi 2 kali lebih kecil.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import cv2 img = cv2.imread('foo.jpg') h,w = img.shape[:2] # Menentukan Ukuran dan Resizing Image new_h, new_w = int(h/2),int(w/2) resizeImg = cv2.resize(img, (new_w,new_h)) # Menampilkan Gambar cv2.imshow('Original', img) cv2.imshow('Resizing', resizeImg) cv2.waitKey(0) cv2.destroyAllWindows() |

Image Resizing OpenCV & Python
Image Cropping OpenCV
Perlu diingat bahwa setiap gambar yang kita baca dengan fungsi cv2.imshow() mengembalikan data dalam bentuk array.
Pengaplikasian cropping pada OpenCV sangat mudah, kita cukup menentukan dimana koordinat gambar yang akan di crop. Terlebih dahulu kita menentukan koordinat x awal dan x akhir lalu menentukan koordinat y awal dan y akhir dari gambar yang telah dikata baca sebelumnya. Contoh :
1 2 3 |
croppedImg = img[440:520, 730:870] cv2.imshow('Resizing', croppedImg) cv2.waitKey(0) |
Dari perintah diatas maka akan tampil hasil crop dari gambar awal kita sesuai dengan koordinat yang telah kita tentukan sebelumnya.

Image Cropping Open CV
Image Rotating OpenCV
Mengubah rotasi juga tidak terlalu sulit. Pertama kita harus menentukan titik tengah rotasi yang bisa kita tentukan dari lebar dan tinggi gambar, lalu menentukan derajat rotai gambar serta dimensi output gambar tersebut. Contoh :
1 2 3 4 5 |
img = cv2.imread('foo.jpg') h,w = img.shape[:2] center = (w/2,h/2) rotate = cv2.getRotationMatrix2D(center,180,1) |
Selanjutnya adalah menerapkan setingan rotasi yang telah kita tentukan pada gambar yang telah kita baca sebelumnya dan menampilkan gambar tersebut.
1 2 3 |
rotatingImg = cv2.warpAffine(img,rotate,(w,h)) cv2.imshow('Rotating', rotatingImg) cv2.waitKey(0) |

OpenCV Image Rotating
Nah itulah dasar Manipulasi Gambar dengan OpenCV dan Python. Jangan lupa subscribe untuk mendapatkan tips dan trik Python dan OpenCV terbaru 😉
Incoming Terms
- Apa Itu Opencv Python
- Opencv Python
- Cara Mengubah Ukuran Gambar Opencv
- Fungsi Imshow Di Python
- Fungsi Cv2 Waitkey
