Menggambar Bentuk Dasar OpenCV

Yang dimaksud dengan bentuk dasar adalah garis, kotak, lingkaran dan polygon.

Pertama import dahulu library yang diperlukan

import cv2
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

Buat image kosong dengan membuat numpy array. np.zeros akan membuat array dengan shape yang ditentukan dan diisi dengan nilai 0.

#img color
img = np.zeros((512, 512, 3), np.uint8)

Membuat Garis

Fungsi yang digunakan adalah cv2.line(img, pos1, pos2, color, width)

  • image: image dimana line akan dibuat.
  • pos1: kordinat awal line
  • pos2: kordinat akhir line
  • color: warna dalam format RGB
  • width: ketebalan line

NOTE: Kordinat (0,0) adalah dipojok kiri atas, dan koordinat (511, 511) adalah pojok kanan bawah.

cv2.line(img, (0,0), (511, 511), (255, 0, 0), 5)
plt.imshow(img)

Membuat Kotak

Fungsi yang digunakan adalah cv2.rectangle(img, pos1, pos2, color, width)

  • image: image dimana kotak akan dibuat.
  • pos1: kordinat awal kotak.
  • pos2: kordinat akhir kotak.
  • color: warna dalam format RGB.
  • width: ketebalan line, jika diisi -1 akan di fill.

Note: Karena image yang digunakan dilanjutkan dari kode sebelumnya, maka garis diagonal pada code sebelumnya akan tetap ada.

cv2.rectangle(img, (2,2), (509,509), (255,0,0), 4)
plt.imshow(img)

Menggambar Lingkaran

Fungsi yang digunakan adalah cv2.circle(img, center_pos, radius, color, width)

  • image: image dimana kotak akan dibuat.
  • center_pos: kordinat titik tengah lingkaran
  • radius: radius lingkaran
  • color: warna dalam format RGB
  • width: ketebalan line, jika diisi -1 akan di fill.
cv2.circle(img, (256,256), 100, (255,0,0), 4)
plt.imshow(img)

Menggambar Polygon

Fungsi yang digunakan adalah cv2.polylines, dengan parameter

  • img: image dimana polygon akan digambar.
  • points: array point dari titik polygon.
  • is_closed: Jika True fungsi akan menggambar garis dari point terakhir ke point awal.
  • color: warna dalam format RGB.
  • thickness: ketebalan line polygon
img = np.zeros((512, 512, 3), np.uint8)

points = np.array([[10, 20], [300, 15], [200, 300]], np.int32)
points = points.reshape((-1,1,2))

cv2.polylines(img, [points], True, (100,100,100), 3)
plt.imshow(img)

Menambahkan Text

Fungsi yang digunakan adalah cv2.putText dengan parameter

  • img: image dimana text akan ditampilkan
  • text: text yang akan ditampilkan
  • posisi: kordinat left, bottom.
  • font face: font yang akan digunakan.
  • font scale: scale factor yang akan dikalikan terhadap font base size.
  • color: warna text
  • thickness: ketebalan line.
img = np.zeros((512, 512, 3), np.uint8)

cv2.putText(img, 'Hello SkillPlus', (20, 400), cv2.FONT_HERSHEY_COMPLEX, 1, (255,0,0), 2)
plt.imshow(img)

Untuk code diatas bisa dilihat di Google colab https://colab.research.google.com/drive/14ty_T_m4wfCcaY41uFf9a_eAzaC0EW8R?usp=sharing

Sharing is caring:

Leave a Comment