Opencv menggambar garis pada video python

Cara mengonversi aliran webcam menjadi gambar garis hitam putih menggunakan OpenCV dan Python. Juga, cara menyesuaikan parameter saat menjalankan streaming langsung

Lihat hasilnya di sini

Hal-hal yang perlu Anda gunakan

Ada dua hal yang perlu Anda gunakan untuk mendapatkan gambar garis yang bagus dari gambar Anda

  1. untuk memuluskan gambar, karena garis pendeteksi sensitif terhadap noise
  2. yang mendeteksi garis

Gaussian blur disarankan menggunakan filter 5×5. Canny kemudian harus melakukan ambang parameter. Untuk menemukan nilai optimal untuk setelan Anda, kami telah memasukkan dua trackbar tempat Anda dapat menyetelnya ke nilai apa pun seperti melihat hasilnya

Dalam tutorial OpenCV dengan Python ini, kita akan membahas cara menggambar berbagai bentuk pada gambar dan video Anda. Sangat umum untuk ingin menandai objek yang terdeteksi dengan cara tertentu, jadi kita sebagai manusia dapat dengan mudah melihat apakah program kita berfungsi seperti yang kita harapkan. Contohnya adalah salah satu gambar yang ditampilkan sebelumnya

Untuk contoh sementara ini, saya akan menggunakan gambar berikut

Anda dianjurkan untuk menggunakan gambar Anda sendiri. Seperti biasa, kode awal kita bisa seperti ini

import numpy as np import cv2 img = cv2.imread('watch.jpg',cv2.IMREAD_COLOR)

Selanjutnya, kita bisa mulai menggambar, seperti

cv2.line(img,(0,0),(150,150),(255,255,255),15) cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows()_

CV2. line() mengambil parameter berikut. dimana, koordinat awal, koordinat akhir, warna (bgr), ketebalan garis

Hasilnya di sini

Baiklah, keren, mari menjadi absurd dengan beberapa bentuk lagi. Selanjutnya, persegi panjang

cv2.rectangle(img,(15,25),(200,150),(0,0,255),15)

Parameter disini adalah gambar, koordinat kiri atas, koordinat kanan bawah, warna, dan ketebalan garis

Bagaimana dengan lingkaran?

cv2.circle(img,(100,63), 55, (0,255,0), -1)

Parameter disini adalah gambar/bingkai, pusat lingkaran, jari-jari, warna, dan kemudian ketebalan. Perhatikan kami memiliki -1 untuk ketebalan. Artinya objek tersebut akan benar-benar terisi, jadi kita akan mendapatkan lingkaran yang terisi

Garis, persegi panjang, dan lingkaran semuanya keren, tetapi bagaimana jika kita menginginkan segi lima, atau segi delapan, atau segi delapan?. Tidak masalah

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32) # OpenCV documentation had this code, which reshapes the array to a 1 x 2. I did not # find this necessary, but you may: #pts = pts.reshape((-1,1,2)) cv2.polylines(img, [pts], True, (0,255,255), 3)_

Pertama, kita beri nama pts, kependekan dari poin, sebagai susunan koordinat yang numpy. Kemudian, kami menggunakan cv2. polyline untuk menggambar garis. Parameternya adalah sebagai berikut. ke mana objek ditarik, koordinatnya, haruskah kita "menghubungkan" titik akhir dan awal, warna, dan lagi ketebalannya

Pada artikel ini, kita akan membahas cara menggunakan cv2. fungsi line() di OpenCV Python untuk menggambar garis. Anda mungkin perlu menggunakan OpenCV untuk menggambar garis guna menandai objek dalam gambar atau untuk penggunaan kreatif lainnya. Kami akan membahas cv2. sintaks line() dengan beberapa contoh untuk membantu pemula memahaminya dengan lebih baik

Baris di OpenCV Python. cv2. garis()

Menggunakan cv2. line() di OpenCV Python, kita dapat dengan mudah membuat garis. Mari kita lihat sintaks untuk fungsi ini —

cv2. baris(img, pt1, pt2,warna,ketebalan,geser)

Sintaksis

  • img – Gambar di mana garis harus digambar
  • pt1 - Titik awal garis
  • pt2 – Titik akhir garis
  • warna – Warna garis
  • ketebalan –  Ketebalan garis
  • lineType – Jenis garis
  • bergeser – Tidak. bit pecahan dari koordinat titik

Fungsi ini menggambar garis pada gambar aslinya, artinya garis tersebut digambar secara permanen pada gambar

Contoh cv2. baris() di Python OpenCV

Impor Perpustakaan yang Diperlukan

Mari kita mulai dengan contoh dengan mengimpor pustaka yang diperlukan, seperti yang ditunjukkan di bawah ini

Iklan

Di [1]

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

Fungsi Utilitas untuk Membuat Gambar Kosong

Kami akan menulis fungsi utilitas yang menghasilkan gambar 512 × 512 kosong dengan tiga saluran warna tempat kami menggambar garis sebagai contoh

Di [2]

def generate_empty_image(): return np.ones(shape=(512,512,3), dtype=np.int16)_

Mari kita periksa fungsi ini dengan memanggilnya di bawah ini. Ini akan bertindak sebagai kanvas tempat kita dapat menggambar garis menggunakan fungsi cv2 lines

Di [3]

sample_img = generate_empty_image() plt.imshow(sample_img)

Keluar[3]

Contoh 1. Gambar Garis Sederhana dengan cv2. garis()

Pada contoh pertama, kita akan menggambar garis sederhana dengan hanya menggunakan parameter wajib dari fungsi cv2 line()

Di sini kita telah melewati koordinat awal dan akhir garis (masing-masing pt1 dan pt2) bersama dengan parameter warna sebagai hijau (0,255,0)

Dapat dilihat bahwa garis pada keluaran sangat tipis dan nyaris tidak terlihat. Ini karena kami belum melewati nilai ketebalan dan secara default diambil sebagai 1 yang menghasilkan garis yang sangat tipis

Di [4]

image1 = generate_empty_image() pt1 = (100, 100) pt2 = (400, 350) color = (0, 255, 0) cv2.line(image1, pt1, pt2,color) plt.imshow(image1)_

Keluar[4]

Contoh – 2. Gambar Garis dengan Ketebalan dengan cv2. garis()

Mari kita perpanjang contoh di atas dan sertakan parameter ketebalan dalam fungsi cv2 line(). Terlihat garis tebal dan terlihat jelas sekarang

Di [5]

image2 = generate_empty_image() pt1 = (100, 100) pt2 = (400, 350) color = (0, 255, 0) thickness=10 cv2.line(image2, pt1, pt2,color,thickness) plt.imshow(image2)_

Keluar[5]

 

Contoh – 3. Gambar Garis pada Gambar dengan cv2. garis()

Dalam contoh ini, kita akan menggambar garis pada gambar kucing dengan warna merah. Kami telah menghitung titik awal dan akhir secara manual untuk meletakkan garis di sepanjang gambar

Di [6]

image3 = cv2.imread('cat.jpg') pt1 = (100, 100) pt2 = (1000, 1150) color = (255, 0, 0) thickness=20 cv2.line(image3, pt1, pt2,color,thickness) plt.imshow(image3)

Keluar[6]

 

  • Baca Juga – Belajar Menggambar Persegi Panjang di OpenCV Python menggunakan cv2. persegi panjang() dengan Contoh

Kesimpulan

Saya harap Anda menemukan tutorial menggambar garis OpenCV singkat ini bermanfaat. Kita membahas sintaks fungsi cv2 line(), serta beberapa contoh, untuk membantu pemula memahaminya dengan lebih baik

Referensi – dokumentasi OpenCV

 

Membagikan

Facebook

Twitter

Linkedin

Ada apa

Pinterest

Telegram

Reddit

Artikel sebelumnya Tutorial untuk K Means Clustering di Python Sklearn

Artikel selanjutnya Tutorial Diagram Lingkaran dalam Bahasa Pemrograman Base R

MLK

MLK adalah platform komunitas berbagi pengetahuan untuk penggemar pembelajaran mesin, pemula, dan pakar. Mari kita bersama-sama membuat hub yang kuat untuk Membuat AI Sederhana bagi semua orang

Bagaimana Anda menggambar garis di OpenCV Python?

cv2. metode line() digunakan untuk menggambar garis pada gambar apa pun. .
titik awal. Ini adalah koordinat awal garis. .
titik_akhir. Ini adalah koordinat akhir dari garis. .
warna. Ini adalah warna garis yang akan digambar

Bagaimana kita menggambar garis dengan OpenCV?

Anda dapat menggambar garis pada gambar menggunakan metode line() dari kelas imgproc . Berikut adalah sintaks dari metode ini. mat − Objek Mat yang mewakili gambar tempat garis akan ditarik.

Bagaimana cara menggambar pada gambar di OpenCV?

Beberapa fungsi menggambar adalah. .
garis(). Digunakan untuk menggambar garis pada gambar
persegi panjang(). Digunakan untuk menggambar persegi panjang pada gambar
lingkaran(). Digunakan untuk menggambar lingkaran pada gambar
putText(). Digunakan untuk menulis teks pada gambar

Bagaimana Anda menulis teks pada video dengan Python?

putText() menyisipkan teks pada bingkai video pada posisi yang diinginkan yang ditentukan oleh pengguna . Kita bisa mengatur jenis font dan juga warna dan ketebalannya. Parameter. bingkai. frame video yang sedang berjalan.

Postingan terbaru

LIHAT SEMUA