Ok gengs kembali lagi kita
akan membahas kali ini masih mengenai python imana kita semua pasti sangat
bersemangat haha. Jadi tujuan kita kali ini yaitu Belajar Menggambar bentuk
geometris yang berbeda dengan OpenCV dan belajar fungsi-fungsi ini: cv2.line(),
cv2.circle(), cv2.rectangle(), cv2.ellipse(), cv2.putText()
dll. Sebelum memulai kita download dulu codenya DISINI, kebetulan kali ini saya menggunakan jupyter notebook.
dll. Sebelum memulai kita download dulu codenya DISINI, kebetulan kali ini saya menggunakan jupyter notebook.
Code
Dalam semua fungsi di atas,
kita akan melihat beberapa argumen yang umum seperti yang diberikan di bawah
ini:
·
img: gambar yang ingin kita gambar bentuknya
· color: warna dari shape. untuk BGR, misalnya: (255,0,0) untuk
biru. Untuk grayscale, hanya melewati nilai scalar.
·
thickness: ketebalan garis atau lingkaran dll.
standar ketebalan = 1
·
lineType: jenis garis, Apakah 8-connected,
baris anti-aliased dll. Secara default, itu 8-connected. cv2.
LINE_AA
memberikan baris anti-aliased yang tampak great untuk kurva.
Menggambar
garis
Untuk menggambar
garis, kita harus melewati koordinat garis start dan akhir. Kita
akan membuat gambar hitam dan menggambar garis biru dari sudut kiri atas ke
kanan bawah.
import numpy
as np import cv2
# Create a
black image
img = np.zeros((512,512,3), np.uint8)
img = np.zeros((512,512,3), np.uint8)
# Draw a
diagonal blue line with thickness of 5 px
img = cv2.line(img,(0,0),(511,511),(255,0,0),5)
Menggambar
persegi panjang
Untuk menggambar persegi
panjang, kita perlu sudut kiri atas dan kanan bawah dari persegi panjang. Kali
ini kita akan menggambar persegi panjang hijau di sudut kanan atas gambar.
img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
Menggambar
lingkaran
Untuk menggambar sebuah
lingkaran, kita perlu pusat koordinat dan radius dari lingkaran. Kita akan
menggambar sebuah lingkaran di dalam rectangle disudut kanan atas.
img = cv2.circle(img,(447,63), 63, (0,0,255), -1)
Menggambar
elips
Menggambar elips, kita perlu
untuk menulis beberapa argumen. Salah satu argumen adalah lokasi pusat (x, y).
Argumen berikutnya adalah sumbu panjang (panjang sumbu Mayor, minor sumbu
panjang). Angel adalah sudut dari rotasi Ellips. startAngle dan endAngle
menunjukkan awal dan akhir dari busur elips yang diukur dengan searah jarum jam
dari axis utama, contohnya memberikan nilai 360 untuk elips penuh. Untuk
keterangan lebih lanjut, Periksa dokumentasi cv2.ellipse().
Contoh di bawah ini menarik elips setengah di tengah-tengah gambar.
img = cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
Menggambar
poligon
Menggambar sebuah poligon,
pertama kita perlu koordinat dari simpul. Membuat titik-titik tersebut menjadi
sebuah array dari bentuk ROWSx1x2 dimana baris adalah jumlah simpul dan harus
dari tipe int32. Di sini kita menarik sebuah poligon kecil dengan empat simpul
warna kuning.
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
img = cv2.polylines(img,[pts],True,(0,255,255))
Jika argumen ketiga adalah Falsae, kita akan mendapatkan polylines
bergabung dengan semua poin, bukan bentuk yang tertutup. cv2.polylines() dapat
digunakan untuk menggambar beberapa baris. Hanya membuat seebuah list dari
semua baris yang kita ingin gambar dan menyebarkannya ke fungsi. Semua garis
akan digambar secara otomatis, Ini lebih baik dan lebih cepat untuk menggambar
sekelompok baris daripada memanggil cv2.line() untuk
setiap baris.
Menambahkan
teks ke gambar:
Untuk memasukkan teks dalam gambar, kita perlu menentukan
mengikuti hal-hal.
·
Data teks yang ingin kita tulis
·
Posisi koordinat dimana kita ingin menaruhnya
(yaitu sudut kiri bawah dimana data dimulai).
·
Jenis font (Check cv2.putText() docs
untuk dukungan font)
·
Skala font (menentukan ukuran font)
·
Hal yang biasa seperti warna, ketebalan,
lineType dll. Untuk melihat lebih jelas, lineType =
cv2. LINE_AA recommended.
Kita akan menulis OpenCV pada gambar kita pada warna putih.
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font,
4,(255,255,255),2,cv2.LINE_AA)
Kita bisa mendapatkan hasil finalnya seperti dibawah ini.
Oke gengs sekian untuk episode kali ini, jangan lupa untuk
follow ig kita di @thinkstudio, fb kita ThinkStudio, dan follow juga Youtube
kita di Belajar Bahasa Pemrograman serta yang terakhir untuk konsultasi data,
skripsi, dan apapun yang berhubungan dengan data bisa ke kita juga ya. Wassalam.
Menggambar fungsi dalam OpenCV
Reviewed by Jimmy Pujoseno
on
March 14, 2018
Rating:
No comments: