BELAJAR ANALISIS DAN BAHASA PEMROGRAMAN

Memulai Dengan Gambar Menggunakan Opencv-Python


Halo gengs kali ini saya mau sharing tentang penggunaan opencv untuk gambar. Sebelum itu kita harus mengenal terlebih dahulu tentang Opencv itu sendiri. OpenCV dimulai di Intel pada tahun 1999 oleh Gary Bradsky dan rilis pertama kali pada tahun 2000. Vadim Pisarevsky bergabung dengan Gary Bradsky untuk mengelola perangkat lunak Rusia Intel OpenCV tim. Pada tahun 2005, OpenCV digunakan Stanley, kendaraan yang memenangkan 2005 DARPA Grand Challenge. Kemudian perkembangannya aktif terus di bawah dukungan dari Willow Garage, dengan Gary Bradsky dan Vadim Pisarevsky memimpin proyek. Sekarang, OpenCV mendukung banyak algoritma yang berkaitan dengan Computer Vision dan pembelajaran mesin dan terus berkembang hari demi hari. Saat ini OpenCV mendukung berbagai bahasa pemrograman seperti C++, Python, Java dll dan tersedia pada platform yang berbeda termasuk Windows, Linux, OS X, Android, iOS dll. Juga, antarmuka berdasarkan CUDA dan OpenCL juga di bawah pengembangan aktif untuk operasi GPU berkecepatan tinggi.
Python adalah tujuan umum Bahasa pemrograman dimulai oleh Guido van Rossum, yang menjadi sangat populer terutama karena kesederhanaan dan mudah dibaca. Hal ini memungkinkan programmer untuk mengekspresikan ide-ide lebih sedikit baris kode tanpa mengurangi keterbacaan apapun.
Dibandingkan dengan bahasa lain seperti C/c ++, Python lebih lambat. Tapi fitur penting lainnya dari Python adalah bahwa itu dapat dengan mudah diperluas dengan C/c ++. Fitur ini membantu kita untuk menulis kode mesin dalam C/c ++ dan membuat bungkus Python untuk itu sehingga kita dapat menggunakan pembungkus ini sebagai modul Python. Ini memberikan dua keuntungan: pertama, kode kita secepat kode C/c ++ asli (karena itu adalah kode C++ aktual yang bekerja di latar belakang) dan kedua, itu sangat mudah untuk kode dalam Python. 
Dan dukungan dari Numpy membuat tugas lebih mudah. Numpy adalah sebuah perpustakaan yang sangat optimal untuk operasi numerik. Ini memberikan sintaks MATLAB bergaya. Semua struktur array OpenCV dikonversi ke-dan-dari Numpy array. Jadi operasi apa pun dapat Anda lakukan di Numpy, Anda dapat menggabungkan itu dengan OpenCV, yang meningkatkan jumlah senjata di gudang senjata Anda. Selain itu, beberapa perpustakaan lain seperti SciPy, Matplotlib yang mendukung Numpy dapat digunakan dengan ini.
Jadi tujuan kita pada artikel kali ini :
1.       Di sini, Anda akan belajar bagaimana untuk read image, bagaimana untuk menampilkannya dan bagaimana untuk menyimpan kembali.
2.       Anda akan belajar fungsi-fungsi seperti: cv2.imread(), cv2.imshow(), cv2.imwrite()
3.       Opsional, Anda akan belajar bagaimana untuk menampilkan gambar dengan Matplotlib
Membaca gambar
Menggunakan cv2.imread() fungsi untuk membaca gambar. Gambar harus di dalam direktori kerja atau path dari gambar harus lengkap saat dimasukkan atau dipanggil.
Argumen kedua adalah flag yang menentukan cara gambar harus dibaca.
·         cv2. IMREAD_COLOR: Memuat gambar berwarna. Setiap transparansi gambar akan diabaikan.
·         cv2. IMREAD_GRAYSCALE: Memuat gambar mode grayscale
·         cv2. IMREAD_UNCHANGED: Load image seperti termasuk alpha channel
Bisa lihat code dibawah ini:
import numpy as np
import cv2
# Load an color image in grayscale
img = cv2.imread('messi.jpg',0)

Dari code diatas kita menggunakan cv2.imread untuk membaca gambar dan merubah gambar menjadi grayscale dengan penggunaan angka 0.
Menampilkan gambar
Gunakan fungsi cv2.imshow() untuk menampilkan gambar di layar. Layar secara otomatis sesuai dengan ukuran gambar. Argumen pertama adalah nama layar yang merupakan string. argumen kedua adalah gambar yang telah kita read diawal. Anda dapat membuat banyak layar seperti yang Anda inginkan, tetapi dengan nama-nama layar berbeda.
cv2.imshow('image',img) 
cv2.waitKey(0)
cv2.destroyAllWindows()
Berikut adalah hasil dari code diatas
CV2.waitKey() adalah fungsi mengikat keyboard. Argumen adalah waktu dalam milidetik. Fungsi menunggu ditentukan milidetik untuk sembarang tombol keyboard. Jika Anda menekan sembarang tombol pada waktu itu, program ini terus berjalan. Jika 0 berlalu,maka dia akan berhenti.
CV2.destroyAllWindows() digunakan untuk menutup semua jendela yang kita buat. Jika Anda ingin menutup setiap jendela khusus, menggunakan fungsi cv2.destroyWindow() dengan menentukan jendela mana yang akan di tutup.
Kita juga bisa melakukan resize jendela/ layar yang ingin kita buat. Disini saya menggunakan code berikut
screen_res = 300, 500
scale_width = screen_res[0] / img.shape[1]
scale_height = screen_res[1] / img.shape[0]
scale = min(scale_width, scale_height)
window_width = int(img.shape[1] * scale)
window_height = int(img.shape[0] * scale)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.resizeWindow('image', window_width, window_height)
Dari code diatas saya mengatur resolusi layar yaitu 300x500. Sehingga didapatkan output dibawah ini

Save sebuah gambar
Gunakan fungsi cv2.imwrite() untuk menyimpan gambar. Argumen pertama adalah nama file, argumen kedua adalah gambar yang ingin disimpan.

cv2.imwrite('messigray.png',img)

Kita akan menyimpan gambar dalam format PNG di dalam direktori kerja.Dibawah ini program dimana kita membaca sebuah gambar kemudian menampilkan dan jika anda menekan ESC maka program akan keluar tanpa menyimpan, sedangkan jika anda menekan “s” maka program akan menyimpan gambar gray yang dibuat dengan format png.
import numpy as np

import cv2
img = cv2.imread('messi.jpg',0) cv2.imshow('image',img) 
k = cv2.waitKey(0)
if k == 27:                                           # wait for ESC key to exit
cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
cv2.imwrite('messigray.png',img)

cv2.destroyAllWindows()
Didapatkan output telah tersimpan gambar baru yaitu messigray.png
Menggunakan Matplotlib
Matplotlib adalah sebuah plotting library untuk Python yang memberi Anda berbagai macam metode plotting. Di sini, Anda akan belajar bagaimana untuk menampilkan gambar dengan Matplotlib. Anda dapat memperbesar gambar, Simpan dll menggunakan Matplotlib.
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('messi.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.show()

Disini kita mendapatkan output seperti dibawah ini

Ok mungkin sekian dulu gengs untuk post kali ini, di tunggu artikel selanjutnya
Memulai Dengan Gambar Menggunakan Opencv-Python Memulai Dengan Gambar Menggunakan Opencv-Python Reviewed by Jimmy Pujoseno on March 12, 2018 Rating: 5

1 comment:

Recent Post

Powered by Blogger.